mssql最佳化學習筆記之一

sqysl發表於2009-06-09
最近下決心學習一下MSSQL的核心技術,看了點《Microsoft.Press.Inside.Microsoft.SQL.Server.2005.The.Storage.Engine》裡的MSSQL配置,然後又接著看了《Microsoft.Press.Inside.Microsoft.SQL.Server.2005.Query.Tuning.and.Optimization.Sep.2007》決定深入研究一下MSSQL的最佳化技術,今天看了第一章,都是些基本概念,雖然這些概念以前也接觸過,但應該是理解比以前更深入了,下面是總結一下自己覺得值得記錄的東西:
1、四個隔離級別:
(1)read uncommitted:讀不加鎖,可以隨時讀到其他事務修改的資料,而且結果不可預測;
(2)read committed:讀資料時要加一個共享鎖,但讀完就釋放掉鎖,哪怕所在事務並沒提交也釋放鎖,會出現同一事務內讀資料部一致的情況;
(3)repeatable read:讀資料時獲取一個共享鎖,而且讀完後不釋放鎖,一直到讀操作所在事務提交為止,不會發生事務內因資料被其他事務修改而造成的讀資料不一致情況,但會發生幻影情況(即因為資料插入操作引起的事務內讀資料的不一致);
(4)serializable:讀資料時加鎖,而且一直到事務提交才釋放,而且不會發生任何事務內資料讀不一致情況,事務對資料的操作或讀取都是序列的;
2、獲取例項上所有操作的CPU資源消耗情況的語句:
SELECT TOP 10
   total_worker_time/execution_count AS avg_cpu_cost,
   execution_count,
   (SELECT SUBSTRING(text, statement_start_offset/2 + 1,
      (CASE WHEN statement_end_offset = -1
         THEN LEN(CONVERT(nvarchar(max), text)) * 2
         ELSE statement_end_offset
      END - statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
FROM sys.dm_exec_query_stats
ORDER BY [avg_cpu_cost] DESC
今天比較累,先寫到這裡。。。有時間繼續。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-605590/,如需轉載,請註明出處,否則將追究法律責任。

相關文章