Browse by Tags

【茶包射手日記】只涉及單一資料表的Deadlock
在我原本狹隘的SQL知識裡,Deadlock發生情境需要兩個Process A與B跟兩個Table X與Y搭配演出: A鎖定住X想更新Y,B鎖定Y等著要更新X,產生無解的僵持,再由SQL二者擇一選為犠牲者,令其失敗來成立另一個Process。 直到最近處理一起Deadlock案例,才又長了見識。一個處理流水序號的Stored Procedure,讀取與更新對象只限同一Table,並不構成井底之蛙心中的Deadlock成立要件: 兩個鎖定對象、相反的讀取/更新順序,但Deadlock卻硬生生地發生了...
【茶包射手日記】SqlDataReader讀取FOR XML結果發生字元截斷
一段使用很久的程式今天忽然出錯,追查原因,是一段古早寫的 FOR XML 查詢出了問題。 程式用SqlCommand執行"SELECT ... FROM ... FOR XML RAW('Boo’)”,最近因資料異動,結果傳回超長的字串,透過SqlDataReader讀取時,只得到最前端的2,033個字元,XML內容被不正常截斷。 微軟有一篇KB310378 The XML data row is truncated at 2,033 characters when you use...
【茶包射手日記】不限條件選項之SQL組裝與資料庫OR運算特性驗證
在設計查詢介面時,下拉式選單是很常見的條件選取方式,而往往我們都會再加上一個"不限條件"選項,允許使用者不限制條件,列出所有項頁。舉例來說: 在設定查詢地區的下拉選單(例如: ddlArea),除了列出基隆市、台北市、台北縣、桃園縣...等各縣市Option外,常會再多一個"所有地區"選項,將Option Value設定='*',選取時表示不限定地區。在Server端,便要將這些篩選條件轉為SQL指令,如何將'*'視為不限地區...
.NET分散式交易程式開發FAQ
當系統存取的資料庫伺服器超過一台,或涉及異種資料庫平台間的資料整合,常常就會伴隨分散式交易(Distributed Transaction)的需求。這門進階的學問,在運用的實務上,瑣碎曲折的小細節還挺多的。 以下是我在RUN!PC發表過的文章,整理了使用.NET程式整合MSDTC做分散式交易的一些經驗分享,內容包含了: 常見的疑難雜症及排除方法、分散式交易狀況的偵測、SQL 2005的LTM與OleTx模式、不同做法的效能比較... 等等,在此提供大家參考。 文章下載 【其他相關文章】 KB-.NET...
TIPS-SqlConnection的ConnectionString保密機制
在設計資料庫相關程式時,連線字串最好能以加密方式存在config檔案裡;再進一步,最好連解密字串的機制都封裝在特定的資料存取元件中,開發人員及呼叫端程式只需傳入SqlCommand或更高階的抽象化資料物件,就可以完成資料庫存取作業,不必也不能得知連線字串的相關細節。 只是依我自己的實務經驗,有時直接傳連線物件(SqlConnection)給呼叫端是較省事的做法(丟一個連線給你自己玩,別來煩我! 是有點不負責任,但元件開發者未必有時間陪著在每個案子中抱著各式不同的需求打滾),連線丟出去了,呼叫端來個SqlConnection...
【茶包射手專欄】錯怪Oracle~~
本來以為自己堪稱台灣地區Trouble-Shoot MSDTC問題的權威,沒想到這幾天陰溝裡翻船,為了解決一台新灌XP SP2無法啟用分散式交易的問題,耗掉近一個人天... 同事回報,照著我先前的KB設定了分散式交易,但是執行以下的Code,程式卻會卡在第11開啟Oracle Connection上,卡住約三分鐘,然後丟出Communication with the underlying transaction manager has failed.之類的Error。 1: private static...
KB-Deadlock Detection And Retrial Sample
最近在處理表單引擎的Deadlock問題,由於引擎核心以物件導向方式開發,很難為了資料庫的更新問題去挪動物件的呼叫順序。但還是努力做了調整,每天Deadlock的發生次數終於壓到個位數,但要100%避免看來是不可能的(至少以我的能力來說是如此)。既然逃不掉,就乖乖面對吧! 一般處理Deadlock的準則是Wait And Retrial,換句話說,程式邏輯本身並沒有任何錯誤,純粹是運氣不好,跟其他Process的資料庫更新作業強碰且被SQL Server挑中變成犠牲品,在絕大部份的情況下,在我們接到Exception的同時...
Posted 23 August 2007 01:57 PMJeffrey | with no comments 8,090
Filed under: , , ,
KB-SQL UDF for Compression
最近要對付一個每天狂長的痴肥資料庫,由於要保全交易相關證據供日後追查,資料表必須保存往來交換的XML原始檔案。XML格式向來以冗長囉嗦聞名,加上每日交易量愈來愈大,資料庫面臨空間不足及備份管理的壓日益沈重。於是我決定雙管齊下改善這個問題: 第一,將過期資料定期搬到另一個資料庫,就可以採行較寬鬆的備份策略,不用每天反覆備份鉅量歷史資料,時間與空間都較省。第二,我打算祭出壓縮大法,逼XML資料瘦身。 以往在.NET 1.1時代,不難找到Open Source的壓縮Library,例如: SharpZipLib...
Posted 28 April 2007 12:54 AMJeffrey | with no comments 6,690
Filed under: , ,

搜尋

Go

<May 2017>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication