T-SQL Optimization Tips (2): 限制資料規模

來源:互聯網
上載者:User

SQL Server執行的T-SQL返回的資料越少,用以完成該T-SQL佔用的資源就越少。所以,T-SQL語句應該只返回需要的資料,這有利於提高SQL Server的整體效能:

  • 充分利用索引從而規避全表掃描;
  • 降低讀取資料的I/O操作;
  • 為其它可能的SQL Server操作節約緩衝;
  • 避免不必要的網路傳輸;
  • 減少無用資料為用戶端帶來的記憶體佔用。

等等。

 

1)限制結果集的行數

在實際開發中,需要返回一個表中所有行的資料的操作是極少的,所以應該限制返回結果集的行數,WHERE子句、TOP運算子以及SET ROWCOUNT選項是可能的選擇。值得注意的是,使用TOP運算子和SET ROWCOUNT選項時,在結果集的行數達到一定數量(由這兩種選擇的參數決定)後T-SQL就會中止,即後兩種選擇要比使用WHERE子句更具效率,但是顯然WHERE子句應用的情境要更多。如果同時在T-SQL中使用了TOP運算子和SET ROWCOUNT選項,雖然畫蛇添足,但也不致影響效率,優先順序方面SET ROWCOUNT選項要比TOP運算子高。

 

2)限制結果集的列數

對於一個二維表結構來說,除了限制行數,就是限制列數了。除非所有列都是需要的,否則應當避免使用SELECT *語句選擇資料。

 

另外,應該避免對視圖進行SELECT操作,因為很多視圖返回的資料可能要比我們需要的資料要多得多,更具效率的做法是繞過視圖而直接從表中SELECT資料。

DOS & DONTS——
3、避免使用SELECT *;

[注意:為了引起注意,所有本系列總結的DOS & DONTS都是具有一定前提的,一般的前提是“除非必要”和“除非必要才不”。]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.