導航:首頁 > 源碼編譯 > 哪些情況需要重新編譯

哪些情況需要重新編譯

發布時間:2022-07-14 00:19:23

❶ 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 列都包含一個整數代碼,用以指明重新編譯的原因。

python項目代碼變更後一定要重新編譯嗎

一般的時候,你直接用py文件執行就可以了,python會自動編譯一些必要的文件。
另外目前py不同的位元組碼是變動的,也就是說不同版本的位元組碼還是不兼容,做不動一次編譯到處執行。
如果你現在三個文件 main.py, a.py, b.py
其中main是入口,而且在main中有import a.py 和import b.py
那麼只會生成a.pyc,b.pyc,而不會生成main.pyc
出發你自己用python中的compile命令編譯main.py
以上

linux為什麼要重新編譯內核

.config 是配置編譯內核的最初步驟,你要編譯驅動程序,就必須要了解這個,多上網查下資料 然後重新編譯 Linux作為一個自由軟體,在廣大愛好者的支持下,內核版本不斷更新。 新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯Linux內核。 通常,更新的內核會支持更多的硬體,具備更好的進程管理能力,運行速度更快、 更穩定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統內核是Linux使用者的必要操作內容。 為了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮: (1)自己定製編譯的內核運行更快(具有更少的代碼) (2)系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中) (3)不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞 (4) 將某種功能編譯為模塊方式會比編譯到內核內的方式速度要慢一些 編譯內核時三個重要文件

❹ c++代碼在什麼情況下,修改了代碼,可以不需要編譯

無論是使用集成開發環境,還是使用makefile,都會根據文件的變動時間來判斷是否需要進行編譯。
例如使用main.cpp編譯出來main.exe文件。再次進行編譯時,會判斷main.cpp是否比main.exe更新。如果更新,就會觸發重新編譯。
正常情況下,修改代碼就應當進行代碼的重新編譯。但是在某些情況下,由於冗餘的頭文件引用導致不必要的擴大了編譯文件范圍。建議在包含頭文件時,盡量採用最小原則。不需要使用的頭文件就不要包含。

❺ 修改了config文件,程序是否必須重新編譯

不需要重編譯的。
一般config文件記錄一些結構化的配置信息。程序在執行的時候讀取,再格式化後使用。配置文件跟執行代碼是兩部分,不需要重新編譯。

❻ 多文件程序調試時,對沒有修改的文件是否還要再次編譯。

這個取決於編譯環境所採用的連接方式。很多像樣一點的採用動態連接方式的編譯環境都會記錄每個源文件的修改情況,未修改的話直接調用先前的編譯結果。
這種情況下燒寫程序是沒有任何影響的。

❼ 什麼情況下需要手動編譯 Linux 內核

只要你代碼或配置有改動,都要重新編譯的,只是如果代碼寫成塊模式的,不用整個代碼都重新編譯,編譯器會自動編譯改動了的代碼。

❽ 依賴的dll更新後什麼情況下需要重新編譯主程序

有的網站後台代碼既有aspx又有CS文件,而且更改CS文件後不需要重新編譯,網站直接就改變了,是有好多這樣的網站。 主要的原因是:網站編譯,可以是整站編譯,也可以不編譯的。把所有源代碼,放在相應目錄,也是可以正常運行的,

❾ oracle資料庫開發人員說『需要重新編譯一下』是什麼意思 是說要重新跑某個過程嗎

重新編譯,就是某個過程或者函數哪裡做了修改 需要重新編譯成可以執行的文件,並不是說重新跑某個過程。編譯完成之後,把編譯好了的過程再重新運行。

❿ 哪些情況需要重新編譯存儲過程

如果是在plsql developer中修改的,可以直接點那個齒輪圖標,或者F8即可編譯。 如果是在sqlplus中,那就敲入修改後的過程代碼(create or replace procere...),最後以/結尾運行即可。

閱讀全文

與哪些情況需要重新編譯相關的資料

熱點內容
有道詞典forlinux 瀏覽:202
匯開優店的代理app叫什麼 瀏覽:140
如何體驗原生態的安卓 瀏覽:846
精緻lee濾波源碼 瀏覽:850
美顏都用什麼app 瀏覽:138
單片機內存 瀏覽:552
mci命令 瀏覽:650
風月片洗發店 瀏覽:832
台灣電影,一個雙腿殘疾的人 瀏覽:737
消失的眼睛電影在線看 瀏覽:530
安卓導航如何升級系統 瀏覽:991
電影邪惡 瀏覽:895
爸爸出海之罪孽泰國免費 瀏覽:201
比較推薦的看片網站 瀏覽:80
一個老頭淘金的電影 瀏覽:175
誰還有看片網址 瀏覽:184
熊:出 瀏覽:176
阿里程序員不加班離職 瀏覽:45
六級pdf 瀏覽:855
jsp嵌入java代碼 瀏覽:162