前幾周做專案遇到問題與大家分享
因讀取資料關聯n個表,我大部份都採用子查詢(in),當時資料量在10000記錄級內,而且在本地伺服器執行速度都比較快。
當再一次匯入幾w條記錄後多表關聯(in)就宕機。然後瘋狂網上搜解決方案。
查詢速度慢的原因很多,常見如下幾種:
1、沒有索引或者沒有用到索引
2、i/o吞吐量小,形成了瓶頸效應。
3、沒有建立計算列導致查詢不優化。
4、記憶體不足。
5、網路速度慢。
6、查詢出的資料量過大。
7、鎖或者死鎖。
8、sp_lock,sp_who,活動的使用者檢視,原因是讀寫競爭資源。
9、返回了不必要的行和列。
10、查詢語句不好,沒有優化 。
按照標準進行修改速度提公升
1、查詢表時都採取 with(nolock) 解鎖,
2、建立計算列,
3、獲取資料進行限制,
4、子查詢優化盡量採用聯接。
5、返回了不必要的行和列,特別包含子查詢行和列。
6、消除newid()隨機排序,
資料查詢優化
一 避免全表掃瞄 首先考慮在where及order by涉及的列上建立索引 避免在where子句中對字段進行null判斷這樣會導致全表掃瞄 二 避免出現where子句中對字段進行null值判斷 demo select id from t where num is null可以替換為select id...
資料查詢優化策略
這裡有個資料優化的 點我 1 引言 隨著計算機應用技術的不斷普及和發展,資料庫系統正越來越多的走進人們的日常生活。在要求查詢結果正確無誤的同時,人們越來越關心查詢的效率問題。影響查詢效率的因素很多,諸如處理器的速度 i o速度 儲存器的容量 作業系統 採取何種的資料庫服務系統等。但是對於特定伺服器來...
SQL Server資料查詢之聯接查詢
四 聯接查詢 1.聯接 1.1內聯接 inner join 1.2外聯接 outer join 1.2.1左聯接 left join 1.2.2右聯接 right join 1.3交叉聯接 cross join 2.內聯接與自聯接 內聯接 作用於兩個表,一般通過兩個表中相同的字段的關係 建立聯絡 自...