發現一個工具 - SqlTableDependency,透過它可以在資料庫的資料發生 Insert、Update、Delete 的時候,即時主動發送通知,而且包含異動後的資料都一起隨著通知發送出來,我們就來看看它要怎麼用?
[創意料理] 有一個工具可以讓資料庫的資料在發生 Insert、Update、Delete 時即時主動通知我們
- 5166
- 0
- SQL Server
- 2017-01-02
發現一個工具 - SqlTableDependency,透過它可以在資料庫的資料發生 Insert、Update、Delete 的時候,即時主動發送通知,而且包含異動後的資料都一起隨著通知發送出來,我們就來看看它要怎麼用?
先前有介紹過用 SqlBulkCopy 快速批次 Insert 大量資料,心裡想說既然快速批次 Insert 大量資料有 SqlBulkCopy,那我要快速批次 Update 大量資料有沒有類似於 SqlBulkCopy 的東西可以用?很可惜,可能是我孤陋寡聞,遍尋不著可以像 SqlBulkCopy 這麼相對容易操作的工具,不過我倒是有找到替代方案,速度上也可以接受,我把整個實作的過程做個記錄,以利往後參考。
SqlBulkCopy 它不是個新玩意兒,但是我最近才認識它,「你不知道你還有哪些不知道」是一件很恐怖的事情,原來 SqlBulkCopy 在 .NET 2.0 就有了,它的出現讓 Insert 大量資料變得更方便了,我只能感嘆相見恨晚。
我在 2016/11/17 這天收到 Microsoft SQL Server Team 寄的一封信 Email,第一句話就說「The public preview of SQL Server on Linux has arrived!」,當天我就把 SQL Server 裝在 CentOS 7 上,但是我心中有個疑問「在 Linux 上的 SQL Server 會不會只是個玩具?」
TPC(Transaction Processing Performance Council)是一個組織,翻成中文就叫「交易處理效能委員會」,這個委員會的主要功能是定義一些交易處理及資料庫效能量測的標準,其中 TPC-C
標準是測量 OLTP 系統的 tpmC
(每分鐘可以處理的 Transaction 數量)來看看 OLTP 系統輸出的效能,而 HammerDB 就是一個提供 TPC-C 標準量測的 Open Source 工具。
SonarQube 是一套程式碼品質分析的工具,支援多種程式語言,像是 C/C++、C#/VB.NET、Java、JavaScript、Python…等超過 25 種程式語言,SonarQube 用 7 個維度來分析程式碼品質,包括:
還可以與 CI 做結合,讓 SonarQube 成為持續整合當中的一環,可以幫助節省一部分人工 Code Review 的力氣,也可以幫助提前發現一些不小心忽略的疏失。
最近在研究一個服務,這個服務需要 DB 支持,而我選擇使用 Open Source 的 MariaDB(關於 MariaDB 的歷史可以參考這裡),就在裝完之後從外部用工具連線時,出現了這個畫面 - Host 'x.x.x.x' is not allowed to connect to this MariaDB server
。
「你如何預防 SQL Injection?」這個問題已經成為了一個顯學,現在我們寫程式如果沒有把解決 SQL Injection 的方式變成習慣,我們就絕對是個不及格的程式設計師,一個領域如果夠成熟,那這個領域會累積一定厚度的必學項目,像 SQL Injection 的問題就是累積來的,面試也常常會問。
在 SQL Sever 中要將不同 Row 的某個欄位裡面的值合併起來用,若單純自己土砲那是一件非常辛苦的事情,幸好 SQL Server 提供了 FOR XML 語法,搭配 PATH 模式就能輕鬆做到。
今天在建 SQL Index 時又在 Clustered Index 與 Non-Clustered Index 之間徘徊了,每每遇到時都忘記了這兩個之間的差別,爬文後記錄這兩者的差異,避免以後我再度忘記。