這兩天遇到一個非常奇怪的問題,給人的感覺有點匪夷所思,如下所示,在更新一個表的統計信息時,會遇到“遇到以零作除數錯誤”,本來這個錯誤是屬于數學錯誤,但是居然出現在更新統計信息的SQL語句里面
UPDATE STATISTICS [dbo].[FIInspectFabric] SAMPLE 20 PERCENT;
消息 8134,級別 16,狀態 1,第 1 行
遇到以零作除數錯誤。
UPDATE STATISTICS [dbo].[FIInspectFabric] WITH FULLSCAN;
消息 8134,級別 16,狀態 1,第 1 行
遇到以零作除數錯誤。
如果我更新統計信息的SQL語句不帶參數,則會執行成功。如下所示
UPDATESTATISTICS [dbo].[FIInspectFabric];
DBCC CHECKTABLE('FIInspectFabric')也沒有發現任何問題,Google、Bing搜索了很久也沒有查到相關資料。
問題出在哪里?一直沒有答案。直到我檢查這個表的索引時,發現在表FIInspectFabric的字段A、B上建立了主鍵索引、然后不知道那個程序員又在字段A上建立了兩個索引(嚴重鄙視之),于是刪除了這兩個索引后,重新執行上面語句OK,問題消失了,于是我建立了測試表,想重現這個錯誤,很奇怪,怎么也重現不了這個錯誤。
====***************************************************2015-07-21日補充************************************************====
今天又出現了這個錯誤,重建索引后,問題依然存在,在檢查這個表的統計信息時,發現除了索引對應的統計信息外,還有大量額外的統計信息,于是我將這些統計信息全部刪除(系統會根據需要自動建立)。然后去跟新統計信息,問題解決。
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_00000006_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_00000007_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_00000008_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_00000009_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_0000000A_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_0000000B_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_0000000C_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_0000000D_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_0000000E_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_0000000F_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_00000010_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_00000011_712A3EA0
DROPSTATISTICS FIINSPECTFABRIC._WA_Sys_0000
新聞熱點
疑難解答