當資料表資料發生Blocking時,我們第一時間往往就是檢查是哪一個Session鎖住資料
導致發生Blocking,但該如何查詢是哪一筆資料被鎖住呢 ?
當資料表資料發生Blocking時,我們第一時間往往就是檢查是哪一個Session鎖住資料
導致發生Blocking,但該如何查詢是哪一筆資料被鎖住呢 ?
今日同事忽然跑來問我,說資料庫發生一個很奇怪的事。
日前上揚志強老師的線上課程時看見楊老師的TSQL中有一句我沒用過的寫法,當下引起了我的興趣而測試了一下。發現該語法只有SQL2016才支援,所以算是新語法,在此分享給大家。
之前聽過老師介紹篩選索引用使用時機,大多會使用在大資料表的某些Hot資料。例如近一年的資料會常被查詢,所以僅對今年的資料建Index...但大家有想過其他的應用情境嗎?
今天在SQL PASS的FB上有一位朋友詢問一個問題
如何讓SQL根據Column中儲存的算式,在Select中算出每一筆Row的答案
今天同仁問我一個TSQL問題,語法如下
Select * From Tb1 a
Left Join Tb2 b On a.id=b.id
Where b.name='Rock'
SQL 2016 有一個不錯用的DMF叫sys.dm_exec_input_buffer,介紹給大家。
我們可以利用sys.dm_db_index_usage_stats這一個DMV來知道索引的使用狀況,例如哪一個索引被seek幾次scan幾次。但有時我會想要知道到底是哪一些語法使用到這一個索引。
日前看見一本書介紹利用資料庫快照集來還原資料庫,今天動手做了一次,並記錄一下。
這一篇純粹是回答PTT鄉民的問題
一直以來在寫TSQL時如需要一個暫存資料表,大多會用Table Varible或Temp Table來做
但常常聽到一些講師或看見官方文件都將Table Varible定義成存放小資料量的臨時資料表
但我長期使用Table Varible來做大資料的暫存表也沒遇見什大問題,因此也就沒多注意。
直到某天突然爆了一個大雷......
有時我們會遇見有人在資料表設計中用單一欄位存放多重階層
例如 : A-1 A-2-1 A-11這樣存放
但用字串存放含數字的階層,在Order By該欄位時就會有問題了
如上面3筆資料我們希望是A-1,A-2,A-11排序。但是SQL在Order By該欄位後會跑出A-1,A-11,A-2這樣的結果
日前用Merge語法同步當年度資料進歷史資料表,結果誤刪了所有歷史資料只剩當年度資料。雖然有Code Review但還是發生這樣的悲劇。
針對大量資料寫入資料表的動作其很大的副作用就是交易紀錄檔的成長
因此在做樣大量寫入資料的動作時,如何減少交易紀錄的成長變是很重要的課題。
相信很多時候大家會用字串組成動態的SQL語法然後再用Execute來塞入到資料表中
,或是將一些SP回傳資料寫入到資料表後再作運用。但這樣的作法會耗費較多資源歐
Merge語法搭配Except來同步資料表
如何表列出預存程序(Stored Procesure)中用到了哪一些資料表呢?
撰寫TSQL來動態產生PIVOT語法,讓報表產出更有彈性