當前位置:首頁 » 編程語言 » sql異常處理怎麼解除
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql異常處理怎麼解除

發布時間: 2023-03-12 17:04:17

A. sql server 2008資料庫提示異常如何處理

如果說還可以創建資料庫。只是某個資料庫出現可疑,那就是我說的那兩個文件被刪或者移除追問:
一直在運行的啊!好好的
沒刪除啊!我用過很多辦法都不行啊
我脫離
然後再附加
曾經遇到這樣的問題!我試過把mdf拿去其他機,然後成功!我就備份bak回來原來新建
還原
都很順利!這次就是不行。回答:
是整個伺服器質疑還是只是一個資料庫?還能建庫嗎?既然禰有備份那就附加,如果附加不了估計就是伺服器問題。建議把sql重新裝下。估計就好了
有9個資料庫
,各種程序都有!同樣的程序的資料庫有三個,有兩個出問題!
之前出問題的也是同一種程序新裝sql的話,我全部停止幾個小時,肯定有損失的
而且麻煩!
我不能次次遇見這樣的問題就新裝sql吧!
我總要找個解決的辦法的啊
哪怕出現「可疑」後能夠備份bak資料庫也好!
我也經常用資料庫,也出現過質疑,基本就是我說的那兩種情況,我仔細想了下,既然是質疑,我想肯定那兩個備份文件伺服器默認找不到的緣故,只能是被移除或者更名但是禰又說備份在呢還可以附加。而且禰又有那麼多庫。不能停!禰給我截個圖吧。

B. 在SQL資料庫中附加資料庫時遇到如下錯誤,請問如何解決執行 Transact-SQL 語句或批處理時發生了異常

轉csdn
sql專家鄒建的解決辦法
作者:鄒建
直接restore或附加應該是不行的,
腳本+導數據肯定沒有問題。
2005轉到2000的步驟步驟
1.
生成for
2000版本的資料庫腳本
2005
的manger
studio
--
打開"對象資源管理器"(沒有的話按F8),
連接到你的實例
--
右鍵要轉到2000的庫
--
任務
--
生成腳本
--
在"腳本向導"的"選擇資料庫"中,
確定選擇的是要轉到2000的庫
--
勾選"為所選資料庫中的所有對象編寫腳本"
--
在接下來的"選擇腳本選項"中,
找到"為伺服器版本編寫腳本"項,
選擇"SQL
Server
2000"
--
其他選項根據需要設置
--
最後把腳本保存到一個
.sql
腳本文件
2.
在2000中創建目標資料庫
在查詢分析器(或2005的manger
studio在打開腳本文件),
連接到SQL
Server
2000,執行上面生成的腳本.以創建一個新的資料庫
3.
將數據從2005導到2000
2005
的manger
studio
--
打開"對象資源管理器"(沒有的話按F8),
連接到你的實例
--
右鍵要轉到2000的庫
--
任務
--
導出數據
--
在"SQL
Server
導入和導出向導"的"選擇數據源"步驟中,
確定選擇的是要導出的資料庫
--
在"選擇目標"步驟中,
連接到
2000,
並選擇步驟2新建的庫
--
在"選擇源表和源視圖"中,
選擇所有的表
--
最後完成

C. 執行SQL語句或批處理發生異常怎麼解決【圖】

沒看到你的圖,不過一般的原因是
日誌文件
不存在,你可以手工建立一個同名的日誌文件。

D. sql server異常怎麼處理

你可以看一下異常謝謝,然後根據異常信息進行處理。
你可以在這里貼出一場信息,這樣比較容易得到答案。
異常信息一般在操作sql時彈出
在系統日誌裡面也可以查看

E. SQL資料庫錯誤如何解決,求大神出招

1、用低版本的SQL客戶端管理軟體嘗試去聯接高版本的SQL Server服務,有可能會報類似問題。
2、可能的解決方法,搞清楚SQL Server服務端的版本,在客戶機上安裝相應的版本管理軟體後,再試著聯接。
3、如果是聯向本機的SQL,請確認你起動的「SQL Server Management Studio」版本是否正確,是否在本機上安裝了多個版本的SQL。
4、如果實在搞不定,建議重新安裝系統。特別提示,安裝SQL Server前強列建議對系統進行一次鏡像備份,因為它安裝過程中如果出問題有可能很難干凈的卸載。
************

5、如果是你的應用或網頁後台代碼中出現這類的問題,試著用「SQL Server Management Studio」聯接資料庫,試著關閉防火牆,如果「SQL Server Management Studio」能聯,應用或後台代碼不能聯,有可能是聯接SQL Server的代碼或驅動不匹配。

F. sql執行出錯,該怎麼解決

運行資料庫出現錯誤,解決步驟如下:
1、單擊「開始」—「所有程序」—「MS SQL Server 2008R2」;
2、選擇「Configuration tools」;
3、單擊「SQL Server Configuration Manager」,打開;
4、右鍵單擊「SQL Server(你的伺服器名字)」,單擊「啟動」;
5、啟動完成後,重新連接資料庫即可。

G. 系統的一個異常SQL的處理

下面是在awr報告裡面看到的有問題的sql,是9個變數的,在應用前台屬於關聯查詢,在sqlplus裡面手工執行檢查實際執行情況如下:

下面是查詢到的綁定變數值,可以通過查看v$sql_bind_capture視圖來查看變數的實際值,如果時間比較久,可以使用如下的語句查看歷史的綁定變數信息

以下是開啟了autotrace 選項跟蹤的手工執行情況,從執行效率上看是沒有問題的。

從執行計劃和表的數據量等方面判斷如果sql的開銷有問題,應該出現在表SAMS_CHECKINOUT上面,下面檢查該表上面索引的創建語句看是否有問題

下面是在awr報告裡面看到的有問題的sql,是9個變數的,在應用前台屬於關聯查詢,在sqlplus裡面手工執行檢查實際執行情況如下:

下面是查詢到的綁定變數值,可以通過查看v$sql_bind_capture視圖來查看變數的實際值,如果時間比較久,可以使用如下的語句查看歷史的綁定變數信息

以下是開啟了autotrace 選項跟蹤的手工執行情況,從執行效率上看是沒有問題的。

從執行計劃和表的數據量等方面判斷如果sql的開銷有問題,應該出現在表SAMS_CHECKINOUT上面,下面檢查該表上面索引的創建語句看是否有問題

從上圖可以看到,實際測試出來的執行計劃跟awr報告上不同。

現在要對sql做測試

我們通過/*+ gather_plan_statistics */ 收集的相關執行計劃及其統計信息與該SQL的AWR報告中的執行計劃不同,且邏輯讀的數量與AWR報告中的數值也相差巨大。因此,為了更准確的判斷問題,按以下方法測試。
1、SQL在生產庫(SAMS庫的實例 1上,實例名為sams1 )上,在SQLPLUS中執行。
2、執行後,在同一SQLPLUS窗口中,立即執行以下命令:

結果如下:

1、在目錄下創建一個腳本文件,用來獲取更加相信的信息。
2、在SQLPLUS中,執行以下命令:@sql_rpt 3271368959 1 24114 24115 99vaabs5ptktb
4、執行完成後,在該目錄下生成一個HTML文檔,拿到更加詳細的sql統計信息附帶表的數據信息

初步分析如下:
1、該SQL執行一次的邏輯讀為11130塊次,其中第37步的邏輯讀為6127塊次,佔了一半還多。而該步的操作是根據前面的獲取到的ROWID,回表SAMS_CHECKINOUT獲取"SC".「CHECKTIME"[TIMESTAMP,11], "SC"."VERIFYCODE"[CHARACTER,4], "SC"."SN"[NVARCHAR2,40], "SC"."INSYSTIME"[TIMESTAMP,11]四列的內容。
2、第38步對SAMS_ICLOCK表的全表掃描,對整個SQL的邏輯讀也有較大貢獻。但這個不是問題的關鍵

另外索引上有兩個想法:
1、新建組合索引或改造已有索引,按如下順序構建組合索引:
(BADGENUMBER, CHECKTIME, SN, VERIFYCODE, INSYSTIME)
2、在表SAMS_ICLOCK上創建組合索引,列名及順序如下:
(SN, ALIAS)

這兩個索引先暫時不創建,先從其他方面入手
由於在測試過程中,其生成的執行計劃從未與AWR中顯示的執行計劃一致過。所以,這也許是造成不能模擬出2億個塊次邏輯讀的一個原因。因此,把有問題的SQL的執行計劃綁定到的測試SQL上。然後執行該測試SQL,並觀察和分析測試SQL的執行過程和結果來做出進一步的處理。
為完成上述想法,需要用到ORACLE的SQL PROFILE在不改變SQL文本的前提下,改變其執行計劃。操作方法如下:
1、在SQLPLUS中,生成問題SQL的創建SQL PROFILE的腳本。該腳本執行後,會要求分別輸入SQL_ID和PLAN_HASH_VALUE的值。而我們問題SQL的SQL_ID是99vaabs5ptktb,PLAN_HASH_VALUE的值是4243346097。腳本執行完成後,會在運行SQLPLUS的當前目錄中生成一個腳本文件。其名稱在執行腳本過程中的結尾有顯示。為描述方便,簡稱該生成的S腳本文件為「問題SQL腳本」。
2、再次執行該腳本,只不過這次輸入測試SQL的SQL_ID和PLAN_HASH_VALUE。其SQL_ID為3kys9xsdjrm3b,PLAN_HASH_VALUE的值為561269195。為描述方便,簡稱該生成的腳本文件為「測試SQL腳本」
3、在文本編輯工具中分別打開上述兩個腳本,將問題SQL腳本中出現在以下特徵文字之間的文字(不包含特徵文字 )復制並覆蓋掉測試SQL腳本中同樣位置的原文字:
h := SYS.SQLPROF_ATTR(
………
……….
……….
:signature := DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE(sql_txt);
4、將測試SQL腳本另存為一個文件(後綴名為.sql)
5、在SQLPLUS中執行第4步另存後的腳本。
6、在SQLPLUS中原封不動的執行原測試SQL。(註:執行前設置SQLPLUS格式,以避免格式混亂。比如 set lines 200 set pagesize 100 )
7、執行 select * from table(dbms_xplan.display_cursor('','','allstats projection last'));

如果正常生成腳本,沒有報錯信息出現在屏幕上,就是生成腳本成功。比如出現下面的提示就是正常的: