Browse by Tags

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 10,975
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也可以用)。 -- =============...
數大便不美
奈米(nanometer)科技最有趣的一點在於當物質的粒子小到一定程度時,物質的特性會迥異於原本巨觀尺度下的物理、化學及生物特性。以無人不愛的黃金為例,當它被製成金奈米粒子(nanoparticle)時,顏色不再是金黃色而呈紅色,說明了光學性質因尺度的不同而有所變化。又如石墨因質地柔軟而被用來製作鉛筆筆芯,但同樣由碳元素構成、結構相似的碳奈米管,強度竟然遠高於不銹鋼,又具有良好的彈性,因此成為顯微探針及微電極的絕佳材料。 from http://nano.nchc.org.tw/aboutnano...
Posted 10 April 2007 08:11 PMJeffrey | 6 comment(s) 11,818
Filed under: ,
KB-T-SQL找最大值方法的效能比較
今天跟同事討論用T-SQL查資料表中最大值的方法,一群人總共想出三種: SELECT TOP 1 + ORDER BY, SELECT MAX, 再來是用CURSOR的FETCH LAST。三種做法,哪一個最有效率呢? 初步想起來,用CURSOR是最笨重的,肯定最慢。剩下的兩種,MAX()是Aggregate Function,依據我過去寫SQLCLR自訂Aggregate Function的經驗,每一列的資料都要送入Funtion中比較,應該會輸給內建的ORDER BY吧? 找來一個有150萬筆資料的Table...
Posted 29 March 2007 06:04 PMJeffrey | with no comments 17,434
Filed under: , ,
KB-Report Margin Changed After SQL Server 2000 Report Service SP2
最近有台SQL Server 2000 Reporting Service主機在部署好報表後,才發現忘了上SP2。上完SP2,卻發現部分報表在列印時邊界設定變了,導致原本一頁要印完的報表印成兩頁。 Google了一下,找到這篇 說明 ,原來SP2為了配合線上列印的Print Control,會在Publish時為報表補上Page Size, Margin等屬性設定,但在SP2之前Publish的報表沒有這些屬性,就會套用8.5" x 11"的紙張, 0.5"邊界的預設值,造成列印結果與原先設計有所出入...
Posted 09 March 2007 09:42 AMJeffrey | with no comments 7,241
Filed under:
KB-Moving SQL Database to Different Language SQL Server
因為英文算是Google大神的母語,為了能直接拿錯誤訊息向大神提問,達到"What you see, what you search!"的美妙境界,除了Office之外,我的OS、Server一直都裝英文版。 (雖然這幾年下來,將中文錯誤訊息翻回英文的能力已經增強不少了,但直接用錯誤訊息查答案的爽快感受只有試過的人才知道,還很容易上癮!) 這個哲學逐步落實到我工作時的伺服器規劃上,只要沒有特別考量,我都會指定OS,SQL等要安裝英文版本。一直以來,這個策略是成功的,已有多次經驗靠著精準的錯誤訊息導引...
Posted 05 March 2007 06:06 PMJeffrey | 1 comment(s) 7,717
Filed under: ,
KB-MSDTC cross different domains
之前提過在Windows 2003上設定MSDTC時需要 注意的事項 ,今天又有新的發現。 依測試結果,當Client與SQL Server分處於不同AD Domain時,可能導致分散式交易失敗。現象是Connection.Open()傳回錯誤訊息: New transaction cannot enlist in the specified transaction coordinator. 問題肇因於MSDTC靠雙向的RPC管道溝通,因此SQL Server所在的主機也要有能力連回Client端...
Posted 13 February 2007 11:47 AMJeffrey | with no comments 20,797
Filed under: , ,
Cannot Generate SSPI Context Error @ SQL
遇到一個詭異的SQL問題。 有一台SQL與Web同台的ASP網站系統(Windows 2000+SQL 2000),使用COM+ Application中的自製VB6資料庫存取元件,COM+ App以特定的使用者身份執行,今天在連接本機SQL時,出現" Cannot generate SSPI context "的錯誤訊息。 經驗中,這鐵定是使用NT整合式認證連線SQL資料庫失敗所致。再三檢查了COM+ Appliction的Identity身份設定,確認帳號密碼無誤。我還做了一個比對測試,用該帳號登入該台主機...
Posted 07 February 2007 11:40 AMJeffrey | with no comments 10,417
Filed under: ,
KB-QueryAnalyzer Bug??
用Query Analyzer查詢一個Table的Text欄位,發現筆數一多就會發生以下的錯誤 [Microsoft][ODBC SQL Server Driver]Unknown token received from SQL Server 或 [Microsoft][ODBC SQL Server Driver]Protocol error in TDS stream 這導致明明要查一百筆,有時傳回59筆,有時傳回92筆,有時則100筆都傳回。於是我在查詢欄位中加入了DataLength去檢查Text欄位的大小...
Posted 10 August 2006 06:49 PMJeffrey | with no comments 5,614
Filed under:
KB-SQL 2000的資料庫變數(Table Variable)
汗顏! 今天才發現一個新玩意,自SQL 2000起,除了暫存資料表之外,還有一個選擇 — 資料表變數(Table Variable) 資料表變數與暫存資料表(Temporary Table, 例如: #myTable)的應用時機很像,但資料表變數具有以下優點: 1. 用於Stored Procedure時,不需要每次Recompile,速度較快 2. 比照Local Variable,Scope定義明確,在不需要時就立刻會被清除 3. Transaction Lock 存在時間短,也不影響實體資料庫...
Posted 08 August 2006 04:29 PMJeffrey | 1 comment(s) 10,321
Filed under:
KB-Restore SQL 2000 Backup on SQL 2005的帳號刪除問題
有個資料庫要從SQL 2000搬到SQL 2005,採用先在SQL 2000 Backup成.BAK,再複製到SQL 2005上Restore的做法,過程順利,但要刪除無用帳號時卻發現以下錯誤訊息: 咳… 伺服器上裝的是本土化兼愛台灣的中文版SQL 2005,一邊碎碎唸一邊Google出訊息原文為: The database principal owns a schema in the database, and cannot be dropped. 用這個訊息Google了一下,很快就找到善心人分享的...
Posted 07 August 2006 02:53 PMJeffrey | with no comments 8,159
Filed under: ,
KB-詭異的NOT IN查詢,原來是NULL搞鬼
今天被一個詭異的SQL查詢結果搞到昏頭,查兩個TABLE SELECT * FROM A WHERE ID='123' –> 有資料 SELECT * FROM B WHERE ID='123' –> 沒資料 由以上結果,推測 SELECT * FROM A WHERE ID NOT IN (SELECT ID FROM B) 該至少有一筆資料才對吧? 答案是不一定!! 若Table B中有部分資料的ID欄位為NULL,則第三個NOT IN查詢的結果將會是空值...
Posted 11 July 2006 09:04 AMJeffrey | 2 comment(s) 12,856
Filed under: ,
MSDTC on Windows 2003 SP1的注意事項
而Windows 2003 SP1就更機車了,在MSDTC上會多了幾個選項,當然預設又是最嚴的選項—Mutual Authentication Required,它是個未來才會生效的選項,現在的效果等同於Incoming Caller Authentication Required,而且只有在兩台DTC都是Windows XP SP2或Windows 2003才適用。如果Web或SQL其中一台的OS是Windows 2000時,No Authentication Required是唯一的選擇。 最後...
更多文章 « 上一頁

搜尋

Go

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

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication