[SQL Server]R Services改名機器學習服務(SQL Server 2017)

R語言以及Python是資料科學工作中常用的兩把利劍,兩者在資料分析、機器學習上都是很棒的武器,去年微軟在SQL Server 2016把R語言整合進平台,就在今年,即將推出的SQL Server 2017也將把Python整合進資料平台了,此外,這一次也同時把R Services重新命名為Machine Learning服務來呼應這次的整合與原有R機器學習套件的升級,不久的將來,Python常用的scikit-learn、TensorFlow及keras套件也能直接執行在SQL Server內了,今天我們先來安裝RC2版本環境。

...繼續閱讀 »

[SQL Server][Emergency]SQL Max Memory Limit Too Low

由於SQL Server最大的記憶體限制預設是2,147,483,647 MB(超大的!而且很眼熟,整數int的最大值),再加上傳說中SQL Server是愛吃記憶體的怪獸,為了避免她不小心把作業系統的記憶體都吃的很乾淨,甚至還使用到虛擬記憶體(可以設定Lock Pages in Memory避免),在安裝完SQL Server後,我們會配置適合比例的記憶體給指定的Instance。因為想測試SQL 記憶體不足對交易效能的影響,不小心把記憶體設定成很小的375 MB,這下悲劇了。

...繼續閱讀 »

[SQL Server]記憶體配置與效能

最近兩個客戶不約而同碰到SQL Server記憶體配置問題,一個客戶諮詢SCOM(System Center Operations Manager)監測到BufferCacheHitRatio比例過低以及Page Life Expectancy分頁停留在快取中的時間太低的警示;另一個客戶則是在測試環境因為資源太少(2GB記憶體)使得Table Scan執行語法跑很久,來筆記一下記憶體壓力對SQL執行效能上的影響。

...繼續閱讀 »

[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秒),剛好開始發生的時間點是每週例行的重建索引,本以為是統計值未更新到新的資料分佈,但資料庫有設定自動更新統計值,客戶重建索引後,也有執行更新統計值的語法。(抓頭..傷腦筋)

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

...繼續閱讀 »

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

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

...繼續閱讀 »

[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產品的支援,我們就是慢慢把系統診斷的工作轉移到擴充事件中嚕~

...繼續閱讀 »