SQL執行效率和效能測試方法總結

2022-08-28 10:51:08 字數 1317 閱讀 1873

對於做管理系統和分析系統的程式設計師,複雜sql語句是不可避免的,面對海量資料,有時候經過優化的某一條語句,可以提高執行效率和整體執行效能。如何選擇sql語句,本文提供了兩種方法

,分別對多條sql進行量化的分析。

在測試sql效能的過程中。

一是通過設定statistics檢視執行sql時的系統情況。選項有profile,io ,time。

set statistics profile on:顯示分析、編譯和執行查詢所需的時間(以毫秒為單位)。

set statistics io on:報告與語句內引用的每個表的掃瞄數、邏輯讀取數(在快取記憶體中訪問的頁數)和物理讀取數(訪問磁碟的次數)有關的資訊。

set statistics time on:顯示每個查詢執行後的結果集,代表查詢執行的配置檔案。

例項如下:

set statistics profile on

set statistics io on

set statistics time on

go–你的sql指令碼開始

select [testcase] from [testcaseselect]

–你的sql指令碼結束

goset statistics profile off

set statistics io off

set statistics time off

另外,也可以通過手工新增語句,計算執行時間來檢視執行語句花費了的時間,以判斷該條sql語句的效率如何:

declare @d datetime

set @d=getdate()

–你的sql指令碼開始

select [testcase] from [testcaseselect]

–你的sql指令碼結束

select [語句執行花費時間(毫秒)]=datediff(ms,@d,getdate())

二是通過sql 2008的「查詢」按鈕下的「包括實際的執行計畫」和「包括客戶端統計資訊」。

下面是我和經理寫的兩個例子的效能對比:

ps:今天在做一道題目的時候,經理給出的一道難題,雖然做出來了,但是效能沒有做到最優化。其中用到了三層巢狀。現在特別是要總結的:大表跟小表進行關聯查詢 時,涉及到巢狀查詢,先查詢小表,然後再聯合大表。我是一開始讓大小表進行關聯,然後再巢狀。而經理寫的是先讓小表巢狀,最後在關聯。這樣,執行效率自然要比我高

SQL語句執行效率及效能測試

寫程式的人,往往需要分析所寫的sql語句是否已經優化過了,伺服器的響應時間有多快,這個時候就需要用到sql的statistics狀態值來檢視了。通過設定statistics我們可以檢視執行sql時的系統情況。選項有profile,io time。介紹如下 set statistics profile...

SQL語句執行效率及效能測試

寫程式的人,往往需要分析所寫的sql語句是否已經優化過了,伺服器的響應時間有多快,這個時候就需要用到sql的statistics狀態值來檢視了。通過設定statistics我們可以檢視執行sql時的系統情況。選項有profile,io time。介紹如下 set statistics profile...

如何測試sql語句效能,提高執行效率

有時候我們經常為我們的sql語句執行效率低下發愁,反覆優化後,可還是得不到提高 那麼你就用這條語句找出你sql到底是在 慢了 示例 set statistics io on set statistics time on go 你要測試的sql語句 select top 100 from tbl co...