當前位置:首頁 » 編程軟體 » 重編譯觸發器

重編譯觸發器

發布時間: 2023-09-03 14:38:07

1. sqlSERVER 什麼時候重新編譯執行計劃

根據資料庫新狀態的不同,資料庫中的某些更改可能導致執行計劃效率降低或無效。SQL Server 將檢測到使執行計劃無效的更改,並將計劃標記為無效。此後,必須為執行查詢的下一個連接重新編譯新的計劃。導致計劃無效的情況包括:
對查詢所引用的表或視圖進行更改(ALTER TABLE 和 ALTER VIEW)。
對執行計劃所使用的任何索引進行更改。
對執行計劃所使用的統計信息進行更新,這些更新可能是從語句(如 UPDATE STATISTICS)中顯式生成,也可能是自動生成的。
刪除執行計劃所使用的索引。
顯式調用 sp_recompile。
對鍵的大量更改(其他用戶對由查詢引用的表使用 INSERT 或 DELETE 語句所產生的修改)。
對於帶觸發器的表,插入的或刪除的表內的行數顯著增長。
使用 WITH RECOMPILE 選項執行存儲過程。
為了使語句正確,或要獲得可能更快的查詢執行計劃,大多數都需要進行重新編譯。
在 SQL Server 2000 中,只要批處理中的語句導致重新編譯,就會重新編譯整個批處理,無論此批處理是通過存儲過程、觸發器、即席批查詢,還是通過預定義的語句進行提交。在 SQL Server 2005 和更高版本中,只會重新編譯批處理中導致重新編譯的語句。由於這種差異,SQL Server 2000 和更高版本中的重新編譯計數不可比較。另外,由於 SQL Server 2005 和更高版本擴展了功能集,因此它們具有更多類型的重新編譯。
語句級重新編譯有助於提高性能,因為在大多數情況下,只有少數語句導致了重新編譯並造成相關損失(指 CPU 時間和鎖)。因此,避免了批處理中其他不必重新編譯的語句的這些損失。
SQL Server ProfilerSP:Recompile 跟蹤事件報告語句級重新編譯。此跟蹤事件在 SQL Server 2000 中僅報告批處理重新編譯。此外,將填充此事件的 TextData 列。因此,已不再需要 SQL Server 2000 中必須跟蹤 SP:StmtStarting 或 SP:StmtCompleted 以獲取導致重新編譯的 Transact-SQL 文本的做法。
跟蹤事件 SQL:StmtRecompile 報告語句級重新編譯。此跟蹤事件可用於跟蹤和調試重新編譯。SP:Recompile 僅針對存儲過程和觸發器生成,而SQL:StmtRecompile 則針對存儲過程、觸發器、即席批查詢、使用 sp_executesql 執行的批處理、已准備的查詢和動態 SQL 生成。
SP:Recompile 和 SQL:StmtRecompile 的 EventSubClass 列都包含一個整數代碼,用以指明重新編譯的原因。

2. oracle編譯觸發器時老轉圈

TRIGGER **** 編譯錯誤
錯誤:PLS-00103: 出現符號 "END"在需要下列之一時:
( begin case declare exit
for goto if loop mod null pragma raise return select update
while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
行:8
文本:end****;

錯誤原因:
這種時候一般有兩種情況,分析如下:
1.掉了結束的符號(如:分號,if的結束end if;最有可能的還是分號),這種屬於比較好查的情況,仔細檢查即可發現問題。
2.存儲過程中可能出現全形的空格,這種錯是不可見的,存儲過程只接受半形的空格,這種錯誤屬於比較難查的,只能通過斷點或者將可能出錯的注釋點排除查錯。實在查不出來,最傻的辦法就是重新再手敲輸入一遍。
3.第三種情況一半是很容易忽略的的錯誤,觸發器創建之後必須輸入內容,不可為空,否則編譯報錯。例如:有的人新建了觸發器,後來發現觸發器不必要,但是又不想刪除,於是把內部代碼全部注釋再去編譯,然後就拋出異常的,一個沒有內容的觸發器是沒有存在的必要的,可以刪除或者禁用。

3. oracle 命令創建觸發器帶有編譯錯誤ora-06544:pl/sql:內部錯誤,怎麼解決

是用PL/SQL DEV進行編譯吧?
如果是,下列辦法應該可以解決:
1、打開工具-〉首選項
2、選擇調試器
3、將編譯時添加調試信息的選項不勾
4、確定後重新編譯

熱點內容
cdn緩存過期時間 發布:2024-11-20 04:46:40 瀏覽:408
安卓什麼牌子的藍牙耳機性比價高 發布:2024-11-20 04:42:24 瀏覽:106
安卓壁紙哪個好知乎 發布:2024-11-20 04:41:16 瀏覽:406
演算法證書 發布:2024-11-20 04:41:06 瀏覽:747
windows7如何訪問共享文件 發布:2024-11-20 04:38:55 瀏覽:784
200台電腦無盤需要哪些伺服器 發布:2024-11-20 04:33:58 瀏覽:195
學而思網校app適配安卓哪個版本 發布:2024-11-20 04:29:18 瀏覽:994
廣州社保密碼是多少 發布:2024-11-20 04:29:18 瀏覽:196
校園一卡通查詢密碼多少 發布:2024-11-20 04:26:57 瀏覽:508
github如何上傳代碼 發布:2024-11-20 04:17:50 瀏覽:828