26.使用基於游標的方法或臨時表方法之前,應先尋找基於集的解決方案來解決問題,基於集的方法通常更有效。
27.與臨時表一樣,游標並不是不可使用。對小型資料集使用fast_forward 游標通常要優於其他逐行處理方法,尤其是在必須引用幾個表才能獲得所需的資料時。在結果集中包括「合計」的例程通常要比使用游標執行的速度快。如果開發時間允許,基於游標的方法和基於集的方法都可以嘗試一下,看哪一種方法的效果更好。
28.在所有的儲存過程和觸發器的開始處設定set nocount on ,在結束時設定set nocount off 。無需在執行儲存過程和觸發器的每個語句後向客戶端傳送done_in_proc 訊息。
29.盡量避免大事務操作,提高系統併發能力。
30.盡量避免向客戶端返回大資料量,若資料量過大,應該考慮相應需求是否合理。
源自:
避免全表掃瞄的sql優化
對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在where 及order by 涉及的列上建立索引 嘗試下面的技巧以避免優化器錯選了表掃瞄 使用analyze table tbl name為掃瞄的表更新關鍵字分布。對掃瞄的表使用force index告知mysql,相對於使用給定的索引表掃瞄將非常耗...
避免全表掃瞄
在應用的程式設計中,除了一些必要的情況下,如月報資料的統計。列印所有清單等可以允許使用全表掃瞄外,一般都盡量避免涉及全表掃瞄。全表掃瞄就是指不加任何條件的查詢語句。下面情況可以 oracle 就使用全表掃瞄 1 所查詢的表沒有索引 2 需要返回所有的行 3 對索引主列有條件限制,但是使用了函式,則 ...
mysql 避免全表 mysql避免全表掃瞄
我們在寫資料庫查詢語句的時候,經常會忽略一些查詢效能問題,導致最後在查詢資料的情況下非常耗時,影響專案質量。資料庫的設計是一門藝術,需要遵循一定的規範。對資料量很大的表一定要建立合適的索引,無論是單個索引還是復合索引,要根據查詢的業務邏輯去建立,同時也記住,單個表的索參數量不得超過5個,不然會很導致...