上個月參加SQL PASS的九月份聚會,講師許致學老師分享了很多種備份還原的Solution。其中一種還原方式是可以指定資料庫還原到特定交易時間,很是有趣。筆記一下
建立合適的索引,來降低Select Top Order By帶來的效能問題
Order By向來是為人垢弊的效能殺手,可是有時又不得排序,也許可以透過建立索引來降低效能的影響。
利用資料表值參數(Table Valued)及預存程序來提升批次更新資料的速度
- 2150
- 0
- [SQL]TSQL語法技巧
日前有一個系統功能是要大量更新資料表的資料,我詢問一下PG預計如何撰寫該功能。PG回覆我說就是用迴圈更新前端餵近來的資料,我聽到當下覺得這樣的做法效能不僅差,且會對SQL造成一定程度的效能影響。
如何查詢目前被Lock住的資料是哪一筆呢?
- 5538
- 0
- [SQL]TSQL語法技巧
當資料表資料發生Blocking時,我們第一時間往往就是檢查是哪一個Session鎖住資料
導致發生Blocking,但該如何查詢是哪一筆資料被鎖住呢 ?
當 Not In 遇上了 Null
- 5945
- 0
- [SQL]TSQL語法技巧
今日同事忽然跑來問我,說資料庫發生一個很奇怪的事。
[ TSQL ] SQL 2016 開始支援 DROP IF EXISTS 語法
- 7705
- 0
- [SQL]TSQL語法技巧
日前上揚志強老師的線上課程時看見楊老師的TSQL中有一句我沒用過的寫法,當下引起了我的興趣而測試了一下。發現該語法只有SQL2016才支援,所以算是新語法,在此分享給大家。
Filtered Index 篩選索引
之前聽過老師介紹篩選索引用使用時機,大多會使用在大資料表的某些Hot資料。例如近一年的資料會常被查詢,所以僅對今年的資料建Index...但大家有想過其他的應用情境嗎?
SQL CLR初體驗,利用CLR撰寫SQL Function處理計算公式並回傳計算結果
- 5818
- 0
- [SQL]TSQL語法技巧
今天在SQL PASS的FB上有一位朋友詢問一個問題
如何讓SQL根據Column中儲存的算式,在Select中算出每一筆Row的答案
注意Left Join時過濾條件擺放的位置,不同的位置可是會有不同的結果歐
- 13531
- 0
- [SQL]TSQL語法技巧
今天同仁問我一個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
- 405
- 0
- [SQL]TSQL語法技巧
- 2016-05-06
SQL 2016 有一個不錯用的DMF叫sys.dm_exec_input_buffer,介紹給大家。
[TSQL] 搜尋出某張資料表中使用特定Index做Seek的Query之執行計畫
- 570
- 0
- [SQL]TSQL語法技巧
- 2016-04-20
我們可以利用sys.dm_db_index_usage_stats這一個DMV來知道索引的使用狀況,例如哪一個索引被seek幾次scan幾次。但有時我會想要知道到底是哪一些語法使用到這一個索引。
利用Database SnapShot還原資料庫
日前看見一本書介紹利用資料庫快照集來還原資料庫,今天動手做了一次,並記錄一下。
利用Stored Procedure 產生動態欄位再Pivot輸出
- 2562
- 0
- [SQL]TSQL語法技巧
- 2016-04-23
這一篇純粹是回答PTT鄉民的問題
利用Table Varible做大資料量的處理,可能會有效能較差的隱憂
一直以來在寫TSQL時如需要一個暫存資料表,大多會用Table Varible或Temp Table來做
但常常聽到一些講師或看見官方文件都將Table Varible定義成存放小資料量的臨時資料表
但我長期使用Table Varible來做大資料的暫存表也沒遇見什大問題,因此也就沒多注意。
直到某天突然爆了一個大雷......
[SQL]有趣的數字及字串夾雜排序方法
- 7066
- 0
- [SQL]TSQL語法技巧
- 2016-02-17
有時我們會遇見有人在資料表設計中用單一欄位存放多重階層
例如 : 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語法來同步資料時小心誤砍了不該刪的資料
- 1185
- 0
- [SQL]TSQL語法技巧
日前用Merge語法同步當年度資料進歷史資料表,結果誤刪了所有歷史資料只剩當年度資料。雖然有Code Review但還是發生這樣的悲劇。
如何在大量Insert資料的交易中降低交易紀錄的成長呢?
針對大量資料寫入資料表的動作其很大的副作用就是交易紀錄檔的成長
因此在做樣大量寫入資料的動作時,如何減少交易紀錄的成長變是很重要的課題。
將Execute回傳資料寫入資料表時,會耗費較多的SQL Server資源
- 1300
- 0
- [SQL]TSQL語法技巧
- 2015-12-01
相信很多時候大家會用字串組成動態的SQL語法然後再用Execute來塞入到資料表中
,或是將一些SP回傳資料寫入到資料表後再作運用。但這樣的作法會耗費較多資源歐
Merge語法搭配Except來同步資料表
- 1547
- 0
- [SQL]TSQL語法技巧
Merge語法搭配Except來同步資料表
如何表列出預存程序(Stored Procesure)中用到了哪一些資料表呢?
- 6490
- 0
- [SQL]TSQL語法技巧
- 2015-11-02
如何表列出預存程序(Stored Procesure)中用到了哪一些資料表呢?