當資料表中有nvarchar(max)這種大型欄位時,該資料表資料存放就會有兩個部分,一個是Row Data一個是LOB,當單一筆資料進來時該大型欄位資料內容過大無法在單一Page存放時,就會被SQL放到LOB區域去。
而LOB在建立資料表時不指定存放區則預設會放到Primary這一個File Group中。但如果我們事後想調整更換時該怎麼做呢?
當資料表中有nvarchar(max)這種大型欄位時,該資料表資料存放就會有兩個部分,一個是Row Data一個是LOB,當單一筆資料進來時該大型欄位資料內容過大無法在單一Page存放時,就會被SQL放到LOB區域去。
而LOB在建立資料表時不指定存放區則預設會放到Primary這一個File Group中。但如果我們事後想調整更換時該怎麼做呢?
近日在檢視索引時對幾個重複索引做完整併後欲將多餘的索引刪除時發生3723錯誤,並且無法順利刪除索引。
今天收到一個需求得修改資料表值參數類型的欄位長度,但使用者定義資料表值參數類型無法使用Alter來異動,只能Drop後Create來異動。一旦該Table Type有被Stored Procedure參照的話,我們還無法Drop掉…….
相信很多情境下會在資料表的欄位設計上用到所謂的計算欄位(Computed Column),顧名思義該欄位存放的值就是經過計算的一個結果。然而計算欄位的資料內容一般常會是取出資料後即時運算並顯示結果,但有時候也會因為某些需求希望能將運算結果真實寫入在page中,而這個需求只要在建立資料欄位時加入一個關鍵字Persisted即可。
日前發現一個資料庫定序跟其他資料庫不同,為求一致性,我們可以單純用Alter Database去改資料庫的定序。但這樣的改法並不會修正該資料庫中其他資料表欄位原有的定序,只會影響未來新增的資料表。所以如果舊資料表欄位也要更改定序的話會需要Alter Table Alter Column 或 建立新資料表並重倒資料。
一直以來,很多文章或書籍都會提到資料庫在對資料做增刪修都會因為資料異動導致Page Splits的產生。一旦過度的分割就會提高所謂的邏輯片段,而要降低邏輯片段就得對資料表或索引做Rebuild或Reorganize,今天心血來潮突然想LAB看看SQL對Page Splits的運作原理為何,所以簡易做個實驗。
之前看了一些關於Partition Table可以透過Switch的方式轉移某個Partition到另一個非Partition Table上,來降低Insert Into大量資料會造成IO的問題。
日前將一張資料表中一個資料型態為varchar改為nvarchar時發生了錯誤,發生錯誤之原因是因為該欄位有Default的Constraint相依導致。本LAB來簡單模擬此一問題。
MSDN官網在Create Index中對DROP_EXISTING功能的解說如下。
日前支援開發一個跟卡證相關系統,系統目前上線運作快一年。日前檢視一下該系統相關資料表是否有索引破碎問題需要重建。其中發現一張資料表是用來存放卡號等相關資料,其破碎率高達99% ( Clustered Index ) 。我檢視該資料表叢集索引是採流水碼編號排序,理論上應該不至於破碎如此嚴重啊 !
日前同仁想利用MS SQL中CDC(Chang Data Capture)功能來針對增刪修資料做紀錄及同步作業,之前我有稍微玩過,但許久沒有碰。因此趁機複習一下並了解一下CDC有甚麼使用上需注意的事項。
近來很忙,因此有點荒廢了BLOG。前幾天剛好有朋友問了一個關於SHRINKDATABASE的問題,讓我興起了LAB的興趣。
上個月參加SQL PASS的九月份聚會,講師許致學老師分享了很多種備份還原的Solution。其中一種還原方式是可以指定資料庫還原到特定交易時間,很是有趣。筆記一下
日前在FB看見楊老師分享SQL2014 SP2後新功能DBCC CLONEDATABASE,可以快速複製一個Database ( 只複製Schema和Statistics資料,不含實體資料 )。
之前聽過老師介紹篩選索引用使用時機,大多會使用在大資料表的某些Hot資料。例如近一年的資料會常被查詢,所以僅對今年的資料建Index...但大家有想過其他的應用情境嗎?
SQL在做索引操作時(重建或重組)往往需耗費很多的交易紀錄空間,今天無意間看見微軟的一張圖表,可以讓我們了解在對大資料表做索引操作時用甚麼樣的還原模式是最不耗資源的。
有時我們會在FileGroup中建立多個File檔案來分散磁碟的IO壓力
,但如果要移除FileGroup中的某一個檔案該怎麼做呢 ? 如果我們
採用SSMS的UI來做,可是會發生錯誤歐。
一直以來都聽聞MS SQL新版本的相容性層級會向下相容2個版本,例如:SQL2008會支援SQL2000,SQL2012支援到SQL2005等。但SQL2014在設定相容性層級的UI中居然顯示支援SQL2005,這實在太令人感動了。但這一切是真的嗎 ? 我們來測試一下吧 ! ! !
您知道DBCC TRACEON(3226,-1)可以讓備份紀錄不要被記錄到
錯誤紀錄中(Errorlog)嗎?
資料庫復原模式進行切換後,須注意執行額外的備份作業