1、升級硬件;
2、根據查詢條件,建立索引,優化索引、優化訪問方式,限制結果集的數據量;
3、擴大服務器的內存;
4、增加服務器CPU個數;
5、對於大的數據庫不要設置數據庫自動增長,它會降低服務器的性能;
6、在查詢Select語句中用Where字句限制返回的行數,避免表掃描,如果返回不必要的數據,浪費了服務器的I/O資源,加重了網絡的負擔降低性能。如果表很大,在表掃描的期間將表鎖住,禁止其他的聯接訪問表,後果嚴重;
7、查詢時不要返回不需要的行、列;
8、用select top 100 / 10 Percent 來限制用戶返回的行數或者SET ROWCOUNT來限制操作的行;
9、在IN後面值的列表中,將出現最頻繁的值放在最前面,出現得最少的放在最後面,減少判斷的次數;
10、一般在GROUP BY 個HAVING字句之前就能剔除多餘的行,所以儘量不要用它們來做剔除行的工作。他們的執行順序應該如下最優: select的Where字句選擇所有合適的行,Group By用來分組個統計行,Having字句用來剔除多餘的分組。這樣Group By 個Having的開銷小,查詢快.對於大的數據行進行分組和Having十分消耗資源。如果Group BY的目的不包括計算,只是分組,那麼用Distinct更快;
11、一次更新多條記錄比分多次更新每次一條快,就是說批處理好。