資源描述:
《對(duì)比sql server中xml auto和t》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、對(duì)比SQLServer中XMLAUTO和T XMLAUTO功能與T-SQL命令 作為一個(gè)DBA,我傾向于關(guān)注性能方面的問題,因此我要確定使用XML(擴(kuò)展標(biāo)記語言)并不會(huì)對(duì)性能產(chǎn)生影響。在本文里,我會(huì)通過比較XMLAUTO功能和標(biāo)準(zhǔn)的T-SQL命令來顯示性能上的差異。在我的測(cè)試過程中,我會(huì)僅僅涉及到XMLAUTO功能的一個(gè)比較小的基礎(chǔ)的部分,同時(shí)我也建議大家在你自己的環(huán)境當(dāng)中來測(cè)試你將要使用的XML功能?! y(cè)試環(huán)境描述 在我的測(cè)試當(dāng)中,我會(huì)建一個(gè)包含了一萬行記錄的表格,如下所述: 表格包含的記錄如下: se
2、lect*fromEmployes XMLAuto處理大量的數(shù)據(jù) 在我的表格中我使用了如下的查詢語句,以一個(gè)標(biāo)準(zhǔn)的T-SQL查詢開始,并且接著每次都向命令添加了更多的XML結(jié)構(gòu): SELECT*FROMEmployes Go SELECT*FROMEmployesFORXMLAUTO go SELECT*FROMEmployesFORXMLAUTO,TYPE go SELECT*FROMEmployesFORXMLAUTO,TYPE,ELEMENTS go SELECT*FROMEmployes
3、FORXMLAUTO,TYPE,ELEMENTS, ROOT go 我在SQLProfiler中監(jiān)控了這些命令。我發(fā)現(xiàn)Duration列在SQLProfiler中是不準(zhǔn)確的。當(dāng)QueryAnalyzer仍然在處理結(jié)果的時(shí)候已經(jīng)執(zhí)行的XML命令已經(jīng)在Profiler中顯示了。因此我會(huì)忽略掉這列,并且觀察其他的資源:CPU和I/O。下面是對(duì)五個(gè)命令執(zhí)行三次的監(jiān)控結(jié)果: 這看起來顯示了T-SQL查詢比其他的方式表現(xiàn)的要好。XMLAUTO的XML查詢使用了超過八倍的CPU資源但卻產(chǎn)生了一樣的I/O。復(fù)雜的XML命令比
4、T-SQL命令消耗了超過80倍的讀取操作,同時(shí)還有許多寫操作和上面的六倍的CPU?! ∈裁磿r(shí)候分析命令產(chǎn)生的I/O統(tǒng)計(jì)數(shù)據(jù): Table'Employes'.Scancount1,logicalreads8247,physical reads0,read-aheadreads7520,loblogicalreads0,lob physicalreads0,lobread-aheadreads0. Table'Employes'.Scancount1,logicalreads8247
5、,physical reads0,read-aheadreads4221,loblogicalreads0,lob physicalreads0,lobread-aheadreads0. Table'Employes'.Scancount1,logicalreads8247,physical reads500,read-aheadreads2586,loblogicalreads0,lob physicalreads0,lobread-aheadreads0. Table'L命令正在創(chuàng)
6、造一個(gè)LAuto處理相對(duì)少量的數(shù)據(jù) 我會(huì)使用相同的表格做同樣的測(cè)試,但是這次讀取更少的數(shù)據(jù)。 首先,我會(huì)為ID列建造一個(gè)索引: >createuniquec123下一頁>>>>這篇文章來自..,。lusteredindexUQ_EmployesonEmployes(id) 接下來我會(huì)使用一個(gè)ployes'.Scancount1,logicalreads12,physical reads0,read-aheadreads0,loblogicalreads0,lobphysical reads0,l
7、obread-aheadreads0. Table'Employes'.Scancount1,logicalreads12,physical reads0,read-aheadreads0,loblogicalreads0,lobphysical reads0,lobread-aheadreads0. Table'Employes'.Scancount1,logicalreads12,physical reads0,read-aheadreads0,loblogicalreads
8、0,lobphysical reads0,lobread-aheadreads0. Table'Employes'.Scancount1,logicalreads12,physical reads0,read-aheadreads0,loblogicalreads0,lobphysical r