sql server 資料查詢優化

2021-05-25 14:57:37 字數 571 閱讀 9880

前幾周做專案遇到問題與大家分享

因讀取資料關聯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.內聯接與自聯接 內聯接 作用於兩個表,一般通過兩個表中相同的字段的關係 建立聯絡 自...