(I agree that this is a borderline question between careers/workplace and SO, but OTOH the question is more on a technical/software developer level so let's attempt to answer it.)
First, congratulations to the opportunity! I recently switched jobs from one technology stack (Ruby and some C#) to a rather different stack (large Java application with 10+ years on its neck), so I can definitely understand if this feels both challenging and a bit frightening at the same time.
So let's focus on some aspects here:
You have done SQL queries before, I assume you have a general understanding of relational algebra, INNER
& OUTER
joins, the importance of proper indexes to avoid unnecessary table scans - this kind of basic stuff. (if not, it's definitely areas where you could train a bit.)
You talk about doing "multi-threaded queries on a massive SQL server database" - potentially billions of rows. I cannot say if this is likely or not; most systems do not have such big databases, but if you have had indications about it being that big, I see no reason to challenge that.
But multi-threaded is a key here. As anyone who has done multi-threaded programming knows, the challenges you face there are different to the problems you face in traditional, sequential programming. I am thinking about locking, trying to avoid deadlocks, trying to avoid locking data in the first place, and things like that. It's worth remembering that Microsoft SQL Server has a different locking strategy than some other databases (depending on what you've used before), so learning when to use (and when not to use) READ UNCOMMITTED
can be critical sometimes. More information: Why use a READ UNCOMMITTED isolation level?
You also write in your question:
Is there any way to set up my own large SQL Server with some big public data to practice some of this?
I'm not sure I would recommend this. I mean, if you don't know a subject, you can't really fake it, and trying to learn more complex topics just for an interview seldom works really well. (sorry to sound a bit negative here)
It also depends greatly on the company where you're being interviewed. I've experienced having to go through coding test, phone interview plus challenging five-hour on-site interview and still don't get the job... while at another company, I just had lunch with the manager (whom I knew a bit from beforehand) and then a phone interview with a couple of key people + emailing a bit back and forth until I got an offer. So the requirements and the process varies greatly between companies.
I believe in honesty, even when it comes to job seeking. Be yourself, and don't be afraid of the areas where you feel you are lacking. If you have many years of Java experience, I'm sure you can learn the .NET/C# mindset quite easily, especially if you have worked with multi-threaded programming, perhaps dependency injection/inversion control frameworks (Spring etc).