You should always have a realistic test environment where you can test updates and breaking changes. To make it as realistic as possible you need to update it regularly with data from the production environment. So why not use your normal SQL backup?
Sometimes you need to get the workitems from TFS directly into your favorite tool, Powershell.
When the workitems are available in PS, you have a lot of possibilities, like making custom reports, release notes papers, or just plain lists.
But instead of creating your own query in PS, why not use the queries already in TFS.
Execution of test runs, either manuel or automatic, will create a bunch of diagnostic test data that can cause the the databse to crow quite rapid.
For vNext build /test jobs you define a retention policy, that will tell TFS how many days you want to keep the data (default 90 days). This job will run automatically every night.
But when using xaml based builds the retention policy is triggered on each build, so if you stop using a build definition, e.g. when you have relased and clone the definition, old builds and test data will be kept forever, until you trigger a build.
Currently there is no out-of-the-box way of making sequential builds in TFS, so I took a look at the REST API, that TFS provides.