[Azure]QnA Maker and Bot Service對話機器人加到網頁或是Microsoft Teams

想讓資訊聊天機器人有溫度,有個重要的關鍵就是聽懂使用者問題(Language Understanding),如果自己寫資訊問答機器人的程式,我們可能要寫很多關鍵字的解析才能判斷好客戶的意圖,經過持續的回饋及除錯,最後才能聰明的回答出設計好的答案。微軟Azure上有一個認知服務(Cognitive Service)可以讓這件事變得簡單,服務的名稱是QnA Maker,今年5月已經是GA(General availability)版本了,介紹的網頁上說,只要數分鐘就能從FAQ到BOT,要串接既有系統的網頁或是加入即時通訊合作軟體也很方便,來試試From FAQ to Bot in minutes

 

...繼續閱讀 »

[SonarQube]Scanners(MSBuild)執行掃描時出現記憶體不足SonarQube java.lang.OutOfMemoryError: GC overhead limit exceeded

最近在新的專案CI流程內開始加入聲納(SonarQube)來進行程式碼分析,希望能獲得海面下更多有關程式碼品質度量的指標。從Jenkins以Command Line執行大型程式庫掃描時,卻出現了記憶體不足的異常,不過小型程式庫則可以正常完成掃描。

進入疑難排解階段,我們先確認伺服器記憶體是充足無虞的,不過觀察掃描程式在大型程式庫執行時,只吃到1G多一點就出現記憶體不足的異常。筆記解題方法。

...繼續閱讀 »

[SQL Server][Machine Learning]Realtime評分(預測)

測試環境訓練好模型,正式上場預測前,我們會需要再建立一段R的評分程式碼,並且以字串的方式包在外部預存程序介面內(sp_execute_external_script),透過讀取序列化後的模型在R的環境執行預測。

但這樣的方式還是多了點麻煩,第一個是程式的可讀性,第二個則是正式環境的資料庫必需依賴R的環境作運算,要解決這個問題,也許可以試試看SQL2016就推出的Realtime評分(sp_rxPredict)或是SQL 2017推出的原生(Native)評分方式,更即時更原生的方式執行。

...繼續閱讀 »

[Fortify]Critical: Insecure Transport: Database解決(啟用SQL加密連線)

為了避免SQL Server與AP伺服器傳輸時的內容被攔截竊取後容易解析,我們可以採用加密的傳輸通道,一來可以增加傳輸封包安全性,二來也避免源碼檢測工具打小報告。

以前都是在DB Server手動裝憑證,然後DB匯出,AP伺服器匯入再設定連線字串啟用加密,才能啟用加密連線(大誤)。最近和同事討論,意外發現,即使沒有額外處理憑證,單只要AP連線字串加上TrustServerCertificate=true;Encrypt=true,實際連線時,SQL會自動產生憑證,重要的TDS封包就被加密了,而且專案中的組態檔還可以通過源碼檢測的盤查。

 

...繼續閱讀 »

[SQL Server]暫存資料表(#TABLE)引發的重新編譯Re-Compilations(Ad hoc)

我們有時在SQL Server監控CPU的效能時,會額外多觀察每秒陳述式重新編譯次數(SQL Re-Compilations/sec)的效能計數,透過收集的資訊及後續的調校來降低生產環境出現大量的重新編譯。

最近專案裡,奉旨把SQL程式也加入持續整合(CI)的測試項目內,在掃描SQL程式時發現幾位成員在頻繁的線上交易語法中,使用了少許的暫存資料表(#TABLE),解釋給同事聽,順便筆記可能引發的大量持續不斷的重新編譯。

...繼續閱讀 »

[SQL Server][Data Exception]寫入或更新資料時,讓SQL暫時自動截斷過長的字串

最近同事在匯入大量資料常碰到SQL Msg 8152, String or binary data would be truncated,中文訊息是是字串或二進位資料會被截斷。

除了找出有問題的資料行與列或是將欄位型別改為varchar(max)兩個方法外,能不能在SQL裡自動截斷過長的資料,不要讓SQL出現錯誤?

...繼續閱讀 »

[SQL Server][Statistics]統計值(五)重複統計值(Overlapping Statistics)

最近在駐點的客戶端遇到一個很神奇的問題,剛匯入大筆資料的隔天(50%以上的異動量),同事有一支程式跑了很久都沒執行完,想辦法和AP人員清理舊資料、加索引,更新統計值後,程式瞬間秒殺,但過沒多久,同事另一支類似功能的程式又塞住,這次即使更新統計值、清除plan cache 、Recompile SQL都沒效。

...繼續閱讀 »

[SQL Server][Statistics]統計值(四)非同步更新統計值(is_auto_update_stats_async_on)

在SQL2016以前,當自動更新統計值選項啟用後,20% + 500筆是一般資料表觸發重新統計的門檻(RT),資料異動累積量達標後,第一個使用統計值的交易會先更新統計值才完成編譯後再實際執行,在某些資料表比較胖的時候,也許先更新統計值再查詢資料的順序可能就會影響OLTP個案交易的執行效能,此時可以試試非同步更新統計值。

...繼續閱讀 »