聽完 SQL Server 2014關鍵資料庫 小筆記

聽完 SQL Server 2014關鍵資料庫 小筆記

今天感謝公司讓我去聽百敬老師的SQL Server 2014課程

,課程中記了一些筆記,利用BLOG先記錄下來,內容

不全然跟SQL 2014有關(小弟不懂的都會記一下)

10320443_762171873802288_4741796549589688407_n

 

10313623_762280140458128_6502611697033455405_n


  • QUERY避免讓SQL做資料的隱含轉換。例如:TableA中ColB欄位資料型態為Char(1),欄位內容存放0~9

此時如果有個QUERY為


	Select * From TableA Where ColB = 1

由於ColB資料型態是Char(1),因此需先轉型成數字後才能比較。如果有針對ColB建立索引,則該索引

無法使用(索引是根據ColB資料型態建立),因此SQL會使用Table Scan來掃描所有資料並轉型來比較。

建議可改寫成


	Select * From TableA Where ColB = Convert(char(1),1)

這樣一來針對ColB建立索引就可以使用。至於各種資料型別在比較時的優先順序請參考下面網址

http://msdn.microsoft.com/zh-tw/library/ms190309(v=sql.105).aspx


  • SQL2014的原生編譯預存程序(Native-Complied Stored Procedure)運作方式是,SQL將NCSP中TSQL轉成C語言的

CODE後再編譯成dll檔然後放到SQL Server中執行。目前很多的TSQL語法NCSP是不支援,所以舊有的SP

未必可以完全轉換成NCSP,官方建議在傳統的SP中呼叫NCSP來增刪修In Memory Table。


  • 大Table請做Page壓縮。

  • 重複性高的資料,壓縮率就會高。加密過的資料由於相異性太高了,所以壓縮率會不高。

  • Bulk Insert到有建立Columnstore Index的資料表時,建議將TABLE切成多個Files。因為當資料寫入資料表時,由於

Columnstore Index會壓縮資料,所以相對耗用CPU資源。因此建議多Files,讓多CPU平行處理。


  • Native-Complied Stored Procedure只能存取In Memory Table,但傳統Stored Procedure則可以存取一般或In Memory兩種型態的Table。

  • SQL2014中的資料表變數可以建立索引,之前SQL版本資料表變數只能有PK而已。

  • In Memory的Table不支援Alter及Rename,因此當您的memory中的資料表要加欄位時該怎麼做呢?

首先建立一個新資料結構的In Memory Table,然後將舊Table資料寫入新表中。再來刪除掉舊資料表,由於不支援

Rename。所以我們得用舊資料表名稱搭配新資料結構再建立一張表,然後再作一次將[新名稱新結構]資料表的資料

寫入[舊名稱新結構]資料表中。


  • SQL2014支援Backup資料庫時加密。

  • DB規劃,Raid1磁碟放LDF檔案,Raid5磁碟放MDF及NDF。而可以將TempDB放在SSD中(SSD死了,由於是TmpDB所以

不會有資料遺失問題)。


  • 7200轉的硬碟IOPS約200左右,而SSD可以到數千。

  • SQL2014資源集區新增支援IO(原來為CPU及Memory),注意:一但IO規則建立了,只要符合規則的連線進來就會套用該

IO限制的規則,就算當時SQL的IO根本不忙。而原來CPU跟Memory是要當資源產生競爭時才會開始套用規則去限制

Connection可使用的資源。


  • AlwaysOn建議不要使用主要副本(同步模式)來當查詢的資料庫,應建立第二或第三個副本(非同步模式)來提供查詢。

因為當副本在被查詢時,SQL會在TempDB產生一個Snapshot來提供該Connection查詢使用。因此如果Connection量很大

,SQL的壓力是非常大。如果這一個副本是主要副本(同步模式)的話,將會拖累Primary DB,因為Primary DB要不斷等

待主要副本。


  • SQL2014支援Partition Table針對Partition來Rebuild Index。

  • SQL2014中AlwaysOn副本如跟Primary DB斷線,該副本仍然可以提供查詢。SQL2012時一旦斷線而該副本蒐集票數

時,一旦發現自己只有一票,就會自殺無法提供查詢。


  • Rebuild Index時,如資料表過大,注意LDF檔成長狀況。

我是ROCK

rockchang@mails.fju.edu.tw