Browse by Tags

【茶包射手專欄】錯怪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 11,008
Filed under: , , ,
KB-Catch Deadlock Event in SQL 2005
Transaction (Process ID 60) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. 之前開發的一個糸統,隨著使用負荷逐步增加,開始出現一些Deadlock的狀況。所謂的 Deadlock ,簡單來說,就是兩個個體分別鎖定了對方下一步要變更的資源,在等待對方讓步釋出資源的過程中形成僵持,此時多半由管理機制強迫其中一方作為犠牲者...
Posted 08 August 2007 01:55 AMJeffrey | 1 comment(s) 18,257
Filed under:
TOOL-UrlEncode Function For SQL Server (Support Unicode)
朋友想在SQL Server中進行UrlEncode,原本想用SQLCLR包 System.Web.HttpUtility.UrlEncode ,但似乎SQLCLR裡不能匯入System.Web[ 註 ],後來雖然找到了Peter DeBetta用T-SQL寫的 UrlEncode UDF ,但處理中文有問題。 一時技癢,就改寫出以下的UDF,最大的改良是可以將Unicode文字轉成%u nnnn 的格式。 有需要的朋友可以參考看看(SQL 2000也可以用)。 -- =============...
TIPS-Using PIVOT In SQL 2005
遇到一個可以應用SQL 2005 PIVOT新功能的好例子,拿出來分享一下。 分析IIS Log時,我希望統計每一秒鐘不同執行結果(Status Code=200, 304, 401, 404, 500 ...)的次數,由IISLog匯入而成的Table可以找到LogTime與StatusCode兩個欄位。 要統計每秒不同StatusCode的數量不難,例如以下的T-SQL: SELECT LogTime, StatusCode, Count (*) As Cnt FROM IISLogTable...
Posted 20 July 2007 07:29 AMJeffrey | 22 comment(s) 50,311
Filed under: ,
KB-Inside SQL 2005 Maintenance Cleanup Task
之前我有介紹過在SQL 2005的維護計劃中,若要清除過期檔案得另外 加設Maintenance Cleanup Task 。 後來接到網友回應,提到資料庫備份到獨立子目錄時(Create a sub-directory for each database)的清理問題,由於原先也沒深入研究過,就順勢剖析了一下Maintenance Cleanup Task的原理。 下圖是Maintenance Cleanup Task的設定畫面,如果你備份時選取了Create a sub-directory for...
Posted 13 July 2007 11:22 AMJeffrey | 1 comment(s) 9,723
Filed under: ,
SQLCLR-SqlString Max Size 8000 Limitation
我寫了一個SQLCLR的UDF(User Defined Function),對傳入的字串做了些處理再傳回: 1: [Microsoft.SqlServer.Server.SqlFunction] 2: public static SqlString DoSomething(SqlString inpString) 3: { 4: if (compString.IsNull) 5: return SqlString.Null; 6: else 7: return new SqlString( 8...
Posted 12 June 2007 08:11 AMJeffrey | 2 comment(s) 12,241
Filed under: ,
Importing Excel To SQL: The value violated the integrity constraints
今天匯入一個Excel 工作表到SQL 2005時,為了省空間,我沒依它建議,將每個欄位都設成nchar(255),而是一一決定用nvarchar, varchar或char,指定適當的長度,有些非NULL的欄位也一併加上不允許NULL的限制以求嚴謹。 開始匯入後,我收到以下的錯誤訊息: Messages Error 0xc0202009: Data Flow Task: An OLE DB error has occurred. Error code: 0x80004005. An OLE DB...
KB-SQL 2000->2005, Table Owner Issue
資料庫要從SQL 2000搬到SQL 2005,我最慣用的手法是: 1) 將SQL 2000的DB Detach 2) MDF, LDF檔案Copy到SQL 2005主機 3) 在SQL 2005上Attach 4) 移除新Attach上去DB中的原User資料(不然建立User Mapping時會因為User已存在而失敗) 5) 建立新User並設好User Mapping就大功告成! 今天遇到一個比較棘手的狀況: SQL 2000資料庫中的Table Owner並不是dbo,而是特定的User...
Posted 30 May 2007 01:38 PMJeffrey | with no comments 9,180
Filed under: ,
令人心驚的IT鬼打牆
SQL 2005中的Common Table Expression(CTE)(註1)是很酷的新功能,比Temporay Table輕便(不用Create Table),又比Derived Table(註2)更耐用(建好後可以反覆使用),更不用說它還支援遞迴式參考的花式用法。 想當初在Beta版時代我寫過文章介紹SQL 2005的新功能,裡面紮紮實實地 用範例介紹了CTE ,沒想到今天發生可怕的鬼打牆,花了半小時連最簡單的CTE都建不出來。 由於打算寫一個很複雜的CTE,於是我照著語法範例先把宣告CTE的部分寫出來...
Posted 23 May 2007 01:14 AMJeffrey | with no comments 9,472
SQL 2005 T-SQL Enhancement: Common Table Expression
從SQL 2000時代,相信不少人就知道運用Derived Table的技巧,將一段特定條件的查詢結果當作一個資料表來處理,讓整個查詢語句變得簡潔,且不必付出操弄暫存資料表的額外成本。不過,Derived Table與暫存資料表間還是有些差別,暫存資料表在建立後,可以反覆查詢,而Derived Table卻不行。CTE的出現打破了這項限制,兼具了Derived Table簡便輕巧的特性,也具備了如暫存資料表般可重覆使用的優點。 不過,改善了Derived Table無法重覆使用的缺點並不是CTE最受人矚目的突破...
Posted 23 May 2007 12:04 AMJeffrey | 4 comment(s) 27,709
Filed under: ,
KB-SSIS Moving SQL NVarchar to ORACLE NVarchar2
之前用SSIS在做ORACLE與SQL間資料搬移時,最痛恨遇到NVarchar跟Unicode Code問題了。 明明是NVarchar(SQL)搬到NVarchar2(ORACLE),兩邊都Support Unicode,但SSIS都老會要求指定Data Flow Destination的Code Page,接著又會嚷著SQL中得到的Unicode不能直接轉成Non-Unicode,所以就得很可笑地在Nvarchar與NVarchar2兩個Unicode欄位中加上一個Data Conversion...
Posted 17 May 2007 12:14 PMJeffrey | 15 comment(s) 32,916
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 8,978
Filed under: , ,
KB-當心SqlDataReader.Close時的額外資料傳輸量
正在寫一段由SqlDataReader取回資料逐一處理的程式,由於資料筆數很多,我就用了以下的程式,先小小Read()個三筆試算,就Close SqlDataReader及SqlConnection結束作業。 static void Test() { using (SqlConnection cn = new SqlConnection( "Data Source=mySql; User Id=blah; Password=blahblah; Initial Catalog=MyDB;" )) ...
Posted 23 April 2007 05:13 PMJeffrey | 13 comment(s) 30,887
Filed under: , ,
KB-ADO.NET 2.0+SQL 2005分散式交易錯誤
今天發現正式主機上的ASP.NET 2.0程式傳回以下錯誤: Stack Trace: [SqlException (0x80131904): New request is not allowed to start because it should come with valid transaction descriptor.] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection...
Posted 17 April 2007 11:46 PMJeffrey | with no comments 7,642
Filed under: , , ,
更多文章 « 上一頁 - 下一頁 »

搜尋

Go

<March 2023>
SunMonTueWedThuFriSat
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication