My advice would be to start with techniques applicable to all databases and then try the ones specific to MsSQL.
Optimizing SQL is difficult, and there are no hard and fast rules. There are very few generic guidelines that you can follow, such as:
- 95% of performance improvements will come from the application, not from server or database engine configuration.
- Design for correctness first, tweak for performance later
- Reduce trips to the database
- Try to express things in a way that fits your data model
- Ignore generic advice about performance - yes, at some point you'll find a system or SQL statement where one of those rules does not apply.
But the key point is that you should always apply the 80-20 rule. Which means that in any system you need to tweak 20% (often much less) of your code for the biggest performance gains. That's where the vendor provided tools usually fail, as they cannot usually guess the application/business context of execution.