標籤:des style blog color io os ar 資料 sp
今天在開發過程中寫了一個預存程序發現執行的時候,時不時會提示605錯誤,重新執行又可能會成功.
百度了一下,很多說法是硬體的IO問題,就是儲存空間反饋給SQL SERVER 寫入成功,但下次讀取的時候SQLSEVER 系統校正發現寫入的資料不正確.
換了一台伺服器,還是提示同樣的錯誤,難道是兩台伺服器都有硬體問題?
重新跟蹤錯誤,仔細檢查了一個代碼.發現總是在同一個地方提示錯誤
INSERT INTO #STK_MKT(LIST_DATE,LTTTRDATE,EDATE,PSVPCLNGPRARC,PSVOPNGPRARC,PSVCLNGPRARC,PSVHTPR,PSVLTPR,TRVOL,TRTO) SELECT C.LIST_DATE,B.EDATE,A.ENDDATE,B.PSVPCLNGPRARC,B.PSVOPNGPRARC,B.PSVCLNGPRARC,B.PSVHTPR,B.PSVLTPR,B.TRVOL,B.TRTO FROM #TRADE_DAY A CROSS APPLY(SELECT TOP 1 * FROM #STK_MKT WHERE EDATE<=A.ENDDATE AND LIST_DATE<=A.ENDDATE ORDER BY EDATE DESC) B CROSS APPLY(SELECT TOP 1 * FROM #LIST_DATE WHERE LIST_DATE<=A.ENDDATE ORDER BY LIST_DATE DESC) C WHERE NOT EXISTS(SELECT 1 FROM #STK_MKT WHERE EDATE=a.ENDDATE)
把插入的表名換了一下,將結果存入其它表中
INSERT INTO #HK_STK_PRICE_IDX(LIST_DATE,LTTTRDATE,EDATE,PSVPCLNGPRARC,PSVOPNGPRARC,PSVCLNGPRARC,PSVHTPR,PSVLTPR,TRVOL,TRTO) SELECT C.LIST_DATE,B.EDATE,A.ENDDATE,B.PSVPCLNGPRARC,B.PSVOPNGPRARC,B.PSVCLNGPRARC,B.PSVHTPR,B.PSVLTPR,B.TRVOL,B.TRTO FROM #TRADE_DAY A CROSS APPLY(SELECT TOP 1 * FROM #STK_MKT WHERE EDATE<=A.ENDDATE AND LIST_DATE<=A.ENDDATE ORDER BY EDATE DESC) B CROSS APPLY(SELECT TOP 1 * FROM #LIST_DATE WHERE LIST_DATE<=A.ENDDATE ORDER BY LIST_DATE DESC) C WHERE NOT EXISTS(SELECT 1 FROM #STK_MKT WHERE EDATE=a.ENDDATE)
重新執行沒有再報這個錯誤.原因不清楚,不輕易去猜測.
SQLSERVER 605 嘗試在資料庫 %d 中提取邏輯頁 %S_PGID 失敗。 該邏輯頁屬於配置單位 %I64d,而非 %I64d。