2023-04-08 09:42 AM 0 7,389
講到在 Windows 觀察 CPU、RAM 跟硬碟... 等效能數據,大家應該會馬上想到效能監視器(Performance Monitor)。 效能監視器也提供寫入 Log 長期監控的功能,但我不想動用 GUI,打算全靠 CLI 指令搞定。 原以為需要第三方軟體或自己用 PowerShell 寫...
2017-09-19 10:15 PM 0 8,734
同事報案,某測試站台不定期會發生 OutOfMemeoryException 記憶體不足錯誤,接獲通報立刻趕往事故現場,問題網站已吃掉 1.8GB 記憶體,差不多是 32 位元模式可用記憶體的上限。廢話不多說,開啟 32 位元工具管理員(C:\Windows\SysWOW64\TaskMgr.e...
2017-08-27 03:56 PM 0 6,738
依據前篇文章:參數傳入 dynamic 會讓函式傳回值也變成 dynamic,導致無法使用 LINQ Lambda 運算式。文末提到,依據方法多載(Method Overloading)與 dynamic 一文的研究心得,.NET 呼叫函式時若遇到參數為 dynamic 時,將改用System....
2017-02-09 08:49 PM 15 33,398
來自同事的資料庫程式效能調校案例一則。 情境為一支同步來源及目的資料表的排程,先一次取回來源及目的資料表,逐一檢查資料是否已存在目的資料表,若不存在即執行Insert,若存在則執行 Update 更新欄位。因 Insert/Update 之前需進行特定轉換,故難以改寫為 Stored Proc...
2016-05-30 10:23 PM 0 27,875
使用者報案,某網頁效能變得奇慢無比,簡單的上線公告查詢耗時超過兩分鐘,追查後抓出問題查詢如下例: select case when convert(varchar,u.StartDate,108)='00:00:00' and convert(varchar,u.EndDate,108)...
2015-08-18 08:53 AM 2 18,637
前一篇文章探討了「WHERE 1=1動態查詢條件組裝」的效能問題,並介紹如何利用C#語言特性簡單寫出沒有多餘WHERE 1=1的馬甲線SQL指令。而在前文提到的Code Review會議,還有一招不需要組裝WHERE指令的做法也被提及。 //REF: http://goo....
2015-08-17 07:37 AM 0 39,202
稱不上DB咖的我,反常地連寫兩篇SQL筆記,其實都是研究「動態產生SQL查詢條件」議題的副產品,這篇才算步入正題,鴨架子湯先來兩碗,烤鴨才上桌,哈!但這樣安排是對的,以下探討有一部分需要先前筆記的基礎才好聊下去。 兩週前,參加一場Code Review討論,會中大家剛好聊到「動態產生SQL查詢...
2015-08-16 05:13 PM 0 12,201
繼續研究不同SQL寫法對執行計劃的影響。 如果大家讀過上一篇筆記,就會知道以下兩則查詢將使用不同的執行計劃,前者走Clustered Index Scan,後者則是Index Seek + Key Lookup。 SELECT ProductID, OrderQty FROM Sale...
2014-12-26 09:38 PM 1 13,513
網友Loops留言分享了一段程式:使用Parallel.For進行平行運算,原本測試平行運算速度勝過循序運算,卻迴圈加入一行Console.WriteLine("{0}", index)後情勢逆轉,跑得比循序迴圈還慢! 直覺推測此一現象肇因於Console為共用資源,多執行...
2014-08-31 11:16 AM 0 17,541
前幾天,幫同事追查 .NET 程式 CPU 衝高問題,才發現 Visual Studio 2013 效能分析工具真是威力強大,特筆記備忘順便分享。原本想拿實務案例說明,但考量太多無關細節會失焦,所以我弄了一個簡單程式當靶機練習射擊: using System; using System....
2013-02-21 09:44 PM 4 9,907
前幾天看到關於陣列跑迴圈時,比對條件裡陣列長度改用變數提升執行效率的討論。亦即 for (int i = 0; i < array.Length; i++) ... 若改成 int c = array.Length; for (int i = 0; i <...
2012-10-23 12:08 AM 1 45,016
ASP.NET Web API支援OData,可以藉由URL加註$filter、$orderby、$skip、$top參數,對資料進行條件篩選、排序、分頁等加工(關於ASP.NET Web API OData特性,可參見KKBruce的文章)。而要啟用OData,有項重要前題是回傳資料型別必須為I...
2012-10-09 11:21 PM 0 14,177
今天處理了一件.NET服務故障案件。有個.NET開發的Windows服務,其任務為每隔幾分鐘查詢資料庫,取出待處理的作業項目,依其指示執行相關動作。狀況為資料庫仍有大量待處理項目,但服務未如預期取回資料逐筆消化。 幸運的是,程式設計時已加入頗為詳細的Log機制,很快地在Log檔發現記憶體不足錯...
2012-06-10 07:18 AM 4 29,016
故事要從點部落看到的一篇文章說起,該文章引薦了另一篇文章: 如何有效的提升網站的效能 - 12項建議,提出不少網頁前端設計上的效能提示,不過其中第8點: 在使用Ajax時,請盡量以GET的方式進行請求,以POST的方式將造成雙倍的要求次數 卻讓人有些疑惑,依我對HTTP GET與PO...
2011-10-20 12:55 AM 13 52,862
對於長年與資料庫、SQL語法打交道的開發者來說,LINQ語法有無比的親切感! 當要在List<SomeClass>集合中找尋特定物件時,寫成 form o in SomeList where o.Col1 == "A" &&...
2011-08-27 11:30 AM 9 38,109
在MaxConnectionsPerServer實驗中,發現一個過去被忽略的問題: 原來同一個Session下,啟用Session的ASP.NET網頁,因鎖定限制有可能出現單一時間內只能有一個Request被處理的情況。換句話說,即便我們使用非同步方式同時發出10個對ASP.NET網頁的Requ...