[SQL Server]On Linux奇幻旅程(一)Database Engine及工具安裝

由於新客戶對於作業系統的喜好(Linux)與限制(Windows),7年繞了一圈,最終還是要回Linux生態系出發,好在微軟也在2016年加入了Linux基金會,這兩三年也注意到熟悉的微軟技術有更多的跨平台支援,來筆記資料庫SQL Server On Linux的安裝設定。

Benjamin Button: You never know what's coming for you

 

...繼續閱讀 »

[SQL Server]清理計畫快取中指定的執行計畫

這週客戶網站出現了一個效能問題,很快的調查發現是特定SQL查詢慢(10秒),剛好開始發生的時間點是每週例行的重建索引,本以為是統計值未更新到新的資料分佈,但資料庫有設定自動更新統計值,客戶重建索引後,也有執行更新統計值的語法。(抓頭..傷腦筋)

進一步從執行計畫觀察,估計的資料列數目與實際也沒有偏差的情形,最後只好和客戶開單一起在安控室重新串語法測試,沒想到速度卻是出奇的快,感覺像是查詢錯用了執行計畫,於是想試試把快取執行計畫清除,以前只會清全部,這次來試試清理指定的執行計畫。

...繼續閱讀 »

[Windows Server]無法啟動互動式服務偵測Interactive Services Detection(錯誤1:功能錯誤)

因為程式要在背景下執行,當應用程式或是服務需要顯示UI時,就需要Interactive Services Detection(互動式服務偵測),最近換了新的OS,也想試背景下的UI顯示,使用互動式偵測服務的第一步就是把服務啟動(Windows 8\Server 2012之後預設是手動未啟動的狀態),但啟動時出現了 錯誤1:功能錯誤。來筆記解決問題的方式。

 

...繼續閱讀 »

[SQL Server][T-SQL]輸入全半形空白

來到周末前,客戶跑來同事的桌邊問了一個小問題,T-SQL要如何輸入全型空白(空格),為了工程師肉眼的可維護性,除了直接輸入這種' ',想找其他的解法,剛剛跑步時想到客戶的問題,想到幾種解法,快來筆記一下。

...繼續閱讀 »

[Windows Server]Server 2012 R2 - FTP中文檔名傳輸問題

最近同事在Windows Server 2012 R2環境使用FTP Command line工具(ftp.exe)測試到另一台FTP Server上下傳檔案,其中,如果碰到中文檔名時就是會失敗,但切到2008 R2的環境測試FTP Command line卻可以成功,也試著調整FTP Server的允許UTF8設定以及command line的編碼設定(chcp 950,65001),但就是不成功(跺腳!), 好,來筆記問題的排解。

 

...繼續閱讀 »

[SQL Server]記憶體緩存資料寫入磁碟(二)自動與間接檢查點(Auto and Indirect CheckPoint)

上一篇文章中,我們探討到CheckPoint檢查點會將記憶體(Buffer Pool)中的中途資料分頁flush到磁碟上,其中checkPoint又可以分為自動、間接、手動及系統內部觸發幾種類型,這篇我們來嘗試使用SQL Server 2012推出,SQL Server 2016正式推薦使用的間接檢查點(Indirect CheckPoint)機制。

...繼續閱讀 »

[SQL Server]記憶體緩存資料寫入磁碟(一)首部曲

很少扎實的實作SQL Server Database Engine內部的行為,最近發現某個客戶的效能瓶頸可能在Transaction log的I/O,同時另外一家客戶正在導入儲存廠商異地備援(DR site)的解決方案(不打算用AlwaysOn傳送到異地),由於保護的是磁碟資源,我們需要確保磁碟上的mdf、ndf與ldf的一致性。

來筆記Buffer Flush To Disk讀書心得以及SQL2012/2014/SQL2016相關的新古與全新功能。
 

...繼續閱讀 »

[SQL Server][DeakLock]觀察死結的工具(四)擴充事件(Extended events)

除了Trace flag及SQL Profiler能野生捕獲DeadLock資訊,在SQL Server 2008開始,也多了一個擴充事件(Extended events)的工具可以幫助我們,到了SQL Server 2016,雖然Trace flag及SQL Profiler都還能運作,但考慮到SQL Profiler對於Server負載的衝擊以及將來SQL產品的支援,我們就是慢慢把系統診斷的工作轉移到擴充事件中嚕~

...繼續閱讀 »

[SQL Server][DeakLock]觀察死結的工具(一)首部曲

最近的案子中,在測試及正式環境都碰到了幾次資料庫交易死結(DeadLock)而有交易被犧牲,有一次還碰上了查詢交易的死結(內部平行查詢死結intra-Query Parallel Deadlock),由於SQL Server發生死結(DeadLock)的原因很多,因為經驗不足,自己沒碰過的碰過的多,踏出解問題的第一步就是紀錄死結資訊。

來筆記幾種觀察死結問題的工具。

  • Trace flag(1222,1204)
  • SQL Profiler
  • Extended events
...繼續閱讀 »