2014-05-22 24 views
1

我現在使用SQL-Server 11.0.3128.0一段時間,通常它只是工作。零星的SqlException類11數0(嚴重錯誤)

由於一些奇怪的原因,今天我試圖從SqlDataReader中讀取數據,使用幾周內沒有改變的代碼來獲取SqlExceptions。不僅僅是我,客戶也遇到了同樣的問題。

我有點茫然如何調試這個,因爲錯誤信息對我來說沒用。當發生異常的代碼是從一個SqlDataReader閱讀:

using (SqlDataReader rdr = cmd.ExecuteReaderWithEx()) 
{ 
    while (rdr.Read()) // <-- the SqlException happens here 
    { 
    nAllQueryRows = (int)rdr["TotalRowCount"]; 
    rc.Add(new Datenkey(tabelleID, (long)rdr[1])); 
    } 
} 

的SQL命令是在多個數據庫和視圖AA搜索:

WITH NumberedList AS 
(
SELECT ROW_NUMBER() OVER (ORDER BY [Artikel_View].[Key]) AS [RowNum] 
,[Artikel_View].[Key] 
,COUNT(*) OVER() AS [TotalRowCount] 
FROM [MyDatabase].dbo.[Artikel_View] 
    WHERE (([Artikel_View].[GeloeschtAm] IS NULL) 
AND (EXISTS (SELECT [Key] FROM [MyDatabase].dbo.[Artikel] WHERE [Artikel_View].[Key] = [Artikel].[Key] AND CONTAINS(*, '"steril"')) 
    OR EXISTS (SELECT [Key] FROM [MyDatabase].dbo.[ArtikelLieferanten] WHERE [Artikel_View].[Key] = [ArtikelLieferanten].[ArtikelKey] AND CONTAINS(*, '"steril"')) 
    OR EXISTS (SELECT [Key] FROM [MyDatabase].dbo.[ArtikelLager] WHERE [Artikel_View].[Key] = [ArtikelLager].[ArtikelKey] AND CONTAINS(*, '"steril"')) 
    OR EXISTS (SELECT [Key] FROM [MyDatabase].dbo.[ArtikelVKPreise] WHERE [Artikel_View].[Key] = [ArtikelVKPreise].[ArtikelKey] AND CONTAINS(*, '"steril"')) 
    OR EXISTS (SELECT [Key] FROM [MyDatabase].dbo.[KundenReservierteBestaende] WHERE [Artikel_View].[Key] = [KundenReservierteBestaende].[ArtikelKey] AND CONTAINS(*, '"steril"')))) 
AND (([Artikel_View].[Nr] LIKE @suchwort1a) 
OR ([Artikel_View].[KatalogNr] LIKE @suchwort1a) 
OR ([Artikel_View].[PZN] LIKE @suchwort1a) 
OR ([Artikel_View].[Hilfsmittelpositionsnummer1] LIKE @suchwort1a) 
OR ([Artikel_View].[HerstellerNr] LIKE @suchwort1a) 
OR ([Artikel_View].[Suchwort1] LIKE @suchwort1a) 
OR ([Artikel_View].[Suchwort2] LIKE @suchwort1a) 
OR ([Artikel_View].[Suchwort3] LIKE @suchwort1a) 
OR ([Artikel_View].[Suchwort4] LIKE @suchwort1a) 
OR ([Artikel_View].[BezeichnungKurz] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.Nr] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.NameVorname] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.KuerzelFuerArtikelNr] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.Suchwort1] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.Suchwort2] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.Suchwort3] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.Suchwort4] LIKE @suchwort1a) 
OR ([Artikel_View].[Lieferanten.LieferantKey.UnsereKdNrBeiLieferant] LIKE @suchwort1a) 
OR ([Artikel_View].[Lager.StandardLagerplatzKey.Kuerzel] LIKE @suchwort1a)) 
) 
SELECT * FROM NumberedList WHERE RowNum BETWEEN 1 AND 100 ORDER BY [Key] 

查詢有兩個參數(是的,第二個是從未使用過的 - 我會盡力擺脫它):

@suchwort1a='plast%' 
@suchwort1c='%[^A-z^Ä^Ö^Ü^ä^ö^ü^ß]plast%' 

它拋出SQLException類11號0 0 LineNumber上與(德國)文本「獻給巢穴aktuellen Befehl IST EIN schwerwieg恩德Fehler aufgetreten。 (在英語中是類似於「當前命令中的嚴重錯誤,放棄結果」)

錯誤在客戶站點發生了很多事情,但在調試系統上只發生了幾次。想知道這個錯誤是想告訴我什麼,對我來說,似乎SQL Server有內部打嗝,如果我重新運行相同的SQL命令,它通常會工作,所以它似乎是服務器導致錯誤的一些稍縱即逝的內部情況。

我怎樣才能解決這個問題

[更新] SQL Server錯誤日誌中包含的狀態轉儲:

2014-05-22 14:00:42.48 spid51  Using 'dbghelp.dll' version '4.0.5' 
2014-05-22 14:00:42.49 spid51  ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL11.BSOFT\MSSQL\LOG\SQLDump0003.txt 
2014-05-22 14:00:42.49 spid51  SqlDumpExceptionHandler: Process 3772 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process. 
2014-05-22 14:00:42.49 spid51  * ******************************************************************************* 
2014-05-22 14:00:42.49 spid51  * 
2014-05-22 14:00:42.49 spid51  * BEGIN STACK DUMP: 
2014-05-22 14:00:42.49 spid51  * 05/22/14 14:00:42 spid 3772 
2014-05-22 14:00:42.49 spid51  * 
2014-05-22 14:00:42.49 spid51  * 
2014-05-22 14:00:42.49 spid51  * Exception Address = 00007FFA87046E07 Module(sqllang+0000000000BB6E07) 
2014-05-22 14:00:42.49 spid51  * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION 
2014-05-22 14:00:42.49 spid51  * Access Violation occurred reading address 000000081C1A4000 
2014-05-22 14:00:42.49 spid51  * Input Buffer 255 bytes - 
2014-05-22 14:00:42.49 spid51  *      16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 
[... lots of bytes...] 
2014-05-22 14:00:42.49 spid51  * a s t %   61 00 73 00 74 00 25 00 
2014-05-22 14:00:42.49 spid51  * 
2014-05-22 14:00:42.49 spid51  * 
2014-05-22 14:00:42.49 spid51  * MODULE       BASE  END  SIZE 
2014-05-22 14:00:42.49 spid51  * sqlservr      00007FF79E580000 00007FF79E5BDFFF 0003e000 
[... lots of modules...] 
2014-05-22 14:00:42.49 spid51  * dbghelp      000000005C1F0000 000000005C385FFF 00196000 
2014-05-22 14:00:42.49 spid51  * 
2014-05-22 14:00:42.49 spid51  *  P1Home: 0000000000000018: 
2014-05-22 14:00:42.49 spid51  *  P2Home: 0000000000000004: 
2014-05-22 14:00:42.49 spid51  *  P3Home: 000000081C1A4000: 
2014-05-22 14:00:42.49 spid51  *  P4Home: 000000081C1A02B8: 0000524400000001 0000000000000100 000000087D1F8040 0000000000015250 000000084B494040 0000000000000001 
2014-05-22 14:00:42.49 spid51  *  P5Home: 0000000021FCD580: 0000000000000004 0000000821F4B070 0000000821F4A9D0 0000000000000000 0000000821F2A301 0000000821F4B070 
2014-05-22 14:00:42.49 spid51  *  P6Home: 0000000021FCD610: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
2014-05-22 14:00:42.49 spid51  * ContextFlags: 000000000010005F: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
2014-05-22 14:00:42.49 spid51  *  MxCsr: 0000000000001FA0: 
2014-05-22 14:00:42.49 spid51  *  SegCs: 0000000000000033: 
2014-05-22 14:00:42.49 spid51  *  SegDs: 000000000000002B: 
2014-05-22 14:00:42.49 spid51  *  SegEs: 000000000000002B: 
2014-05-22 14:00:42.49 spid51  *  SegFs: 0000000000000053: 
2014-05-22 14:00:42.49 spid51  *  SegGs: 000000000000002B: 
2014-05-22 14:00:42.49 spid51  *  SegSs: 000000000000002B: 
2014-05-22 14:00:42.49 spid51  *  EFlags: 0000000000010216: 
2014-05-22 14:00:42.49 spid51  *  Rax: 0000000000000000: 
2014-05-22 14:00:42.49 spid51  *  Rcx: 00007FFA87046E31: EBC09F0F30533B49 C09E0F30533B4910 9D0F30533B4907EB 48C7FF0B75C084C0 AEEB08C38348C6FF 5E73F93B410A8B45 
2014-05-22 14:00:42.49 spid51  *  Rdx: 000000081C1A3070: 0000081000000000 0000000000000F60 000000081C1A3FE0 000000081C1A3FE0 0000000000000000 0000000000000000 
2014-05-22 14:00:42.49 spid51  *  Rbx: 000000081C1A4000: 
2014-05-22 14:00:42.49 spid51  *  Rsp: 0000000021FCDBF8: 00007FFA87046C17 0000000821F4AD50 0000000821F4AD00 0000000000000000 0000000821F4B070 000000081C197831 
2014-05-22 14:00:42.49 spid51  *  Rbp: 00007FFA86490000: 0000000300905A4D 0000FFFF00000004 00000000000000B8 0000000000000040 0000000000000000 0000000000000000 
2014-05-22 14:00:42.49 spid51  *  Rsi: 0000000000000608: 
2014-05-22 14:00:42.49 spid51  *  Rdi: 0000000000000608: 
2014-05-22 14:00:42.49 spid51  *   R8: 0000000000000000: 
2014-05-22 14:00:42.49 spid51  *   R9: 0000000000000004: 
2014-05-22 14:00:42.49 spid51  *  R10: 0000000821F4B070: 000000080000003C 000000081C197720 0000000821F0ED00 0000000821F0ED60 000000081C1A0FC0 000000081C1A11E0 
2014-05-22 14:00:42.49 spid51  *  R11: 0000000821F4A9D0: 00007FFA86BA1158 0000000000000000 0000000000000000 0000000000000000 0000000800000000 0000000821F56040 
2014-05-22 14:00:42.49 spid51  *  R12: 0000000000000000: 
2014-05-22 14:00:42.49 spid51  *  R13: 0000000821F2A301: 600000000821F0F4 000000000821F643 E000000000000000 9000007FFA888E22 C000007FFA888E22 0000007FFA888E22 
2014-05-22 14:00:42.49 spid51  *  R14: 0000000821F4B070: 000000080000003C 000000081C197720 0000000821F0ED00 0000000821F0ED60 000000081C1A0FC0 000000081C1A11E0 
2014-05-22 14:00:42.50 spid51  *  R15: 8000000000000001: 
2014-05-22 14:00:42.50 spid51  *  Rip: 00007FFA87046E07: 7705F98341138B48 D8858C8BC1634949 E1FFCD034800BB6E EBC0940F30533B49 C09C0F30533B4922 9F0F30533B4919EB 
2014-05-22 14:00:42.50 spid51  * ******************************************************************************* 
2014-05-22 14:00:42.50 spid51  * ------------------------------------------------------------------------------- 
2014-05-22 14:00:42.50 spid51  * Short Stack Dump 
2014-05-22 14:00:42.50 spid51  00007FFA87046E07 Module(sqllang+0000000000BB6E07) 
2014-05-22 14:00:42.50 spid51  00007FFA87046C17 Module(sqllang+0000000000BB6C17) 
2014-05-22 14:00:42.50 spid51  00007FFA870375CF Module(sqllang+0000000000BA75CF) 
2014-05-22 14:00:42.50 spid51  00007FFA8702F22B Module(sqllang+0000000000B9F22B) 
2014-05-22 14:00:42.50 spid51  00007FFA87015C72 Module(sqllang+0000000000B85C72) 
2014-05-22 14:00:42.50 spid51  00007FFA87017DF4 Module(sqllang+0000000000B87DF4) 
2014-05-22 14:00:42.50 spid51  00007FFA86FE87EA Module(sqllang+0000000000B587EA) 
2014-05-22 14:00:42.50 spid51  00007FFA87029FF6 Module(sqllang+0000000000B99FF6) 
2014-05-22 14:00:42.50 spid51  00007FFA8702BF94 Module(sqllang+0000000000B9BF94) 
2014-05-22 14:00:42.50 spid51  00007FFA86F7A117 Module(sqllang+0000000000AEA117) 
2014-05-22 14:00:42.50 spid51  00007FFA86D10A7D Module(sqllang+0000000000880A7D) 
2014-05-22 14:00:42.50 spid51  00007FFA890E643B Module(sqlmin+0000000000BC643B) 
2014-05-22 14:00:42.50 spid51  00007FFA88568EF7 Module(sqlmin+0000000000048EF7) 
2014-05-22 14:00:42.50 spid51  00007FFA88649D62 Module(sqlmin+0000000000129D62) 
2014-05-22 14:00:42.50 spid51  00007FFA886466D2 Module(sqlmin+00000000001266D2) 
2014-05-22 14:00:42.50 spid51  00007FFA886481B1 Module(sqlmin+00000000001281B1) 
2014-05-22 14:00:42.50 spid51  00007FFA88707952 Module(sqlmin+00000000001E7952) 
2014-05-22 14:00:42.50 spid51  00007FFA85793D80 Module(sqldk+0000000000013D80) 
2014-05-22 14:00:42.50 spid51  00007FFA85793B64 Module(sqldk+0000000000013B64) 
2014-05-22 14:00:42.50 spid51  00007FFA85793967 Module(sqldk+0000000000013967) 
2014-05-22 14:00:42.50 spid51  00007FFA857B2F0F Module(sqldk+0000000000032F0F) 
2014-05-22 14:00:42.50 spid51  00007FFA857B3750 Module(sqldk+0000000000033750) 
2014-05-22 14:00:42.50 spid51  00007FFA857B2C5D Module(sqldk+0000000000032C5D) 
2014-05-22 14:00:42.51 spid51  00007FFA857B3F88 Module(sqldk+0000000000033F88) 
2014-05-22 14:00:42.51 spid51  00007FFA916116AD Module(KERNEL32+00000000000016AD) 
2014-05-22 14:00:42.51 spid51  00007FFA937F4629 Module(ntdll+0000000000074629) 
2014-05-22 14:00:42.53 spid51  Stack Signature for the dump is 0x000000014CD388CE 
2014-05-22 14:00:43.25 spid51  External dump process return code 0x20000001. 
External dump process returned no errors. 
+0

錯誤日誌說什麼? – st4hoo

+0

什麼是'cmd.ExecuteReaderWithEx()'?這不是一個框架方法。 – Keith

+0

不好意思啊,我加ExecuteReaderWithEx()進行調試,這是其執行與try/catch語句和記錄異常命令一個小的輔助方法: '公共靜態SqlDataReader的ExecuteReaderWithEx(此的SqlCommand CMD) { 嘗試 { 回報CMD。的ExecuteReader(); } catch(SqlException ex) { Logger.LogSqlException(ex);拋出; 扔; } }' – Sam

回答

0

您是否正在運行SQL 2005?這聽起來像這個bug:http://support.microsoft.com/kb/938102

+0

看起來真的很喜歡那個bug,但它是SQL-Server 2012,確切版本是11.0.3128.0(我將添加版本到問題中,感謝提醒) – Sam

+1

但是,這看起來很有前途:http://support.microsoft的.com/KB/972936 /解 – Sam