大家好,這是我在博客園寫的第一篇博文,之所以要開這個博客,是我對MS SQL技術學習的一個興趣記錄。
作為計算機專業畢業的人,自己對技術的掌握總是覺得很膚淺,博而不專,到現在我才發現自己的興趣所在,於是我通過網絡找了各種MS SQL技術的相關文檔,總覺得講得比較干澀,沒有一個系統性,今年3月底我無意瀏覽到一個網站提供免費的性能調優的半年培訓(http://www.sqlpassion.at/academy/performance-tuning-training-plan/),網站所有人會在每周往你郵箱發送一份性能調優的培訓材料,於是在今天,一個多月學習下來,我覺得自己對SQL SERVER的理解已經開始深入,所以我覺得應該把這些材料共享給大家,順便對自己學習MS SQL技術一個記錄。
因為我覺得,很多東西只有自己對別人講解一遍,才會加深自己的理解,順便提升自己。
以下開始是我的學習材料分享,這個是第0篇,總論:
-
第1個月:數據庫基礎
- 在第1個月我們會通過討論在SQL SERVER中的基本概念,建立SQL SERVER的基礎。在第一個月的4個星期里我們會學到:
-
第2個月:索引
- 基於你已在第1個月學到的知識,第2個的一切都是關於SQL Server中的索引。有了好的索引戰略,你就可以獲得大幅度提速SQL Server工作。這4周我們會涵蓋(以下)細節。
- 第5周 堆表 0518_05_堆表.rar
- 第6周 聚集索引 0602_06_聚集索引.rar
- 第7周 非聚集索引
0608_07_00聚集表上的B樹結構.rar
0615_07_01非聚集索引.rar
0624_07_02SQL_Server的索引結構.part1.rar
0624_07_02SQL_Server的索引結構.part2.rar
0624_07_02SQL_Server的索引結構.part3.rar
0624_07_02SQL_Server的索引結構.part4.rar
0629_07_03非聚集索引的B樹結構在聚集表.rar
0706_07_04非聚集索引的B樹結構在堆表.rar - 第8周 覆蓋索引 臨界點(Tipping Point) 0713_08_覆蓋索引、臨界點.rar
-
第3個月:執行計划
- 當我們提交查詢給SQL Server,我們通過T-SQL語句只告訴SQL Server我們要什么。但在SQL Server內部卻是編譯成執行計划。執行計划是我們如何獲取我們需要數據的獲取戰略。如果你有性能問題,你就需要理解如何讀懂並調整生成的執行計划。這4周你會學到關於執行計划的下列內容。
-
第4個月:統計信息
- 統計信息是SQL Server數據庫里最重要的部分,在生成執行計划時,統計信息使用來決定你的查詢里多少列可以被返回。如果你的統計信息過期了,你會獲得來自SQL Server次佳的執行計划。因此我們把一個月的時間致力於統計信息,只有這樣你才可以對它們非常熟悉。這個月我們會談到:
-
第5個月:鎖,阻塞,死鎖
- 到目前為止作為開發或數據庫管理員的你,你的生活都還太平,因為我們只是單用戶與SQL Server打交道。如果是多用戶,在SQL Server內部會發什么呢?在那個情況下SQL Server需要獲得鎖,這個最終會引發阻塞的情況。而且,你若不幸的話,阻塞會導致死鎖。為你准備(迎接)這些情景,這個月我們會談到:
-
第6個月:性能監控與故障排除
- 哇哦,終於你到了性能調優的最后一個月。你已經在成為性能調優專家的路上了。但是你還是需要一些額外知識:在SQL Server中運行中,我們如何做性能監控與故障排除來避免性能上的問題。因此在最后一個月我們會涉及: