很多情境會使用CTE來跑遞迴,最常的情境應該就是用CTE跑出階層效果。
而要順利使用遞迴會有一些限制,其中官方文件有寫到一個限制就是 -->
- 遞迴成員資料行的資料類型必須與錨點成員中對應資料行的資料類型相同。
以下是因為該限制而發生錯誤的Demo Code
很多情境會使用CTE來跑遞迴,最常的情境應該就是用CTE跑出階層效果。
而要順利使用遞迴會有一些限制,其中官方文件有寫到一個限制就是 -->
以下是因為該限制而發生錯誤的Demo Code
簡單筆記一下如何透過Linked Server來刪除資料表
本次參加PASS Taiwan Summit 2022時和朋友討論到多檔案的File Group是如何分散存放資料,其分散的最小單位為何呢?
日前在Tunning一句語法時,在SSMS的視窗下撰寫TSQL測試。當時發現我用變數當參數來查跟直接用數字來當參數查時會跑不同的執行計畫,Code的範例如下
今天在Super SQL Server社團看見有人問了一個問題,他有一個每日銷售金額統計表,他想每日都往前加5天,產生一個view叫做sumof5days,應該如何寫這個查詢呢?
今天嘗試移轉SQL2008R2的SSRS到SQL2019上,然而SQL2019的RS得另外下載安裝,裝完RS後該系統會自動去SQL內的master及msdb中建立RSExecRole這一個角色並授權一些SP及Table給RS,讓RS有權限去維護SQL Agent的作業或排程等...
今天開啟一部SQL主機,該主機是階段性使用,因此已經一年沒開機了。主機安裝兩個Instance,Instance A會鏡像一個DB到Instance B去。
以往鏡像的範例大多是一對一建立,日前依好友的要求所以寫了這一篇二對一的架構,設定內容都一樣,只是要多設定一台而已,以下簡略寫一下步驟。
日前一位開發同仁反應他透過SSMS的UI要修改自己的密碼時都會顯示權限不足而無法修改,我試了一下發現的確如此
日前發現一個資料庫定序跟其他資料庫不同,為求一致性,我們可以單純用Alter Database去改資料庫的定序。但這樣的改法並不會修正該資料庫中其他資料表欄位原有的定序,只會影響未來新增的資料表。所以如果舊資料表欄位也要更改定序的話會需要Alter Table Alter Column 或 建立新資料表並重倒資料。
今天Alter一張千萬筆的資料表中一個欄位為NOT NULL,結果爆了LDF
日跟有位PASS好友聊到當他分批大量刪除資料時會有Blocking造成,因此他想在delete的時候加入rowlock hint來減少Blocking的發生。
他表示delete的where條件式並沒有索引可以用,我當下是建議可以建立合適索引後再來刪資料,資料刪得快相對也比較不會發生Blocking了。
一直以來,很多文章或書籍都會提到資料庫在對資料做增刪修都會因為資料異動導致Page Splits的產生。一旦過度的分割就會提高所謂的邏輯片段,而要降低邏輯片段就得對資料表或索引做Rebuild或Reorganize,今天心血來潮突然想LAB看看SQL對Page Splits的運作原理為何,所以簡易做個實驗。
一直以來有個觀念就是Session ID小於50的就是SQL系統用的System Process。
現實的資料規劃中常會遇到有人將一些有意義的代號組成一字串來儲存,這樣的設計模式常常會碰到的大問題就是需要拆字串來查詢。而拆字串的方式查詢往往都無法使用索引,因此造成Table Scan進而影響效能。
純筆記
日前將一張資料表中一個資料型態為varchar改為nvarchar時發生了錯誤,發生錯誤之原因是因為該欄位有Default的Constraint相依導致。本LAB來簡單模擬此一問題。
日前一位同仁來告知我說他寫了一支預存程序,但一執行卻跑很久也不會停止,因此請我幫忙看一下該預存程序。
日前支援開發一個跟卡證相關系統,系統目前上線運作快一年。日前檢視一下該系統相關資料表是否有索引破碎問題需要重建。其中發現一張資料表是用來存放卡號等相關資料,其破碎率高達99% ( Clustered Index ) 。我檢視該資料表叢集索引是採流水碼編號排序,理論上應該不至於破碎如此嚴重啊 !
前情提要MS SQL CDC(Change Data Capture)功能初體驗 ,這一篇是要介紹一個CDC須注意的問題, 讓我稍微模擬一下並分享給大家。