For the last twenty years, SQL Server performance tuning has relied on a few facts:
SQL Server provided a lot of performance metrics with thorough documentation from both Microsoft and the community. You could fetch those metrics in a variety of ways, like Perfmon counters and dynamic management views. Many of the metrics were cumulative since the instance started up (index usage DMVs, wait stats) or since “the thing” happened (like the query plan went into cache.) Instance restarts rarely happened, so we had a lot of metric history available at any given time. Your SQL Server’s performance capacity was