由於要分析sql profiler捕獲的sql 語句的效能,需要找出執行頻率高,用時長的語句。
sql profiler生成的表如下:
create table [dbo].[lijidownload]([rownumber] [
int] identity(
,) not null,
[eventclass] [
int] null,
[textdata] [ntext] collate sql_latin1_general_cp1_ci_as null,
128) collate sql_latin1_general_cp1_ci_as null,
[ntusername] [nvarchar](
128) collate sql_latin1_general_cp1_ci_as null,
[loginname] [nvarchar](
128) collate sql_latin1_general_cp1_ci_as null,
[cpu] [
int] null,
[reads] [bigint] null,
[writes] [bigint] null,
[duration] [bigint] null,
[clientprocessid] [
int] null,
[spid] [
int] null,
[starttime] [datetime] null,
[binarydata] [image] null,
[sumindex] [
int] null,
---為了分析加入的
primary key clustered
([rownumber] asc
)with (ignore_dup_key
=off) on [primary]
) on [primary] textimage_on [primary]
由於text型別的資料不能比較和做group等運算。所以引入sumindex列來識別相同的textdata值。
生成sumindex列的資料:
update lijidownloadsetsumindex
=checksum(substring(textdata,
,500
))
500 :可以指定為捕獲的sql 語句的最大長度。
找出使用頻率最高的前10條語句:
select top10sumindex,count(sumindex)
asusedmuch
into #temp
from lijidownload
group by sumindex
order by usedmuch desc
select distinct t.usedmuch,substring(l.textdata,
,500
astextdata
from #temp t inner join lijidownload l
on t.sumindex
=l.sumindex
order by t.usedmuch desc
找出總用時最高的前10條語句
select distinct substring(l.textdata,,500
astextdata,b.totalduration
from lijidownload l inner join
(select top
10sum(duration)
astotalduration,sumindex from lijidownload
where eventclass=41
--型別為sql語句
group by sumindex
order by totalduration desc) b
on l.sumindex
=b.sumindex
order by b.totalduration desc
分析SQL語句的效能
1.檢視執行時間和cpu占用時間 set statistics time on select from 表set statistics time off 結果 2.檢視查詢對i 0的操作情況 set statistics io on select from 表set statistics io of...
利用EXPLAIN分析sql語句的效能
使用explain關鍵字可以模擬優化器執行sql查詢語句,從而知道mysql是如何處理你的sql語句,可以幫助選擇更好的索引和寫出更優化的查詢語句。explain 的每個輸出行包括下面的列 select查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序。有三種情況 select...
mysql 語句 效能 mysql語句效能分析
id id列數字越大越先執行,id列為null的就表是這是乙個結果集 select type 表示不需要union操作或者不包含子查詢的簡單select查詢。有連線查詢時,外層的查詢為 且只有乙個 primary 乙個需要union操作或者含有子查詢的select,位於最外層的單位查詢的select...