批處理SQL語句的執(zhí)行效率提高的方法
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
下面為您介紹批處理SQL語句的執(zhí)行效率提高的方法,供您參考,如果您在大量數(shù)據(jù)集中執(zhí)行操作的優(yōu)化方面遇到過問題,不妨一看,相信會對您學(xué)習(xí)SQL語句的優(yōu)化會大有幫助。 如果你的項目要求你的程序?qū)Ω哌_幾萬條的數(shù)據(jù)在集中的時間內(nèi)執(zhí)行固定序列的操作,且不能完全使用存儲過程時而需要使用程序來執(zhí)行時。會需要這些優(yōu)化。 我們知道,SQL服務(wù)器對一條語句的執(zhí)行,需要分析、編譯、執(zhí)行這些步驟,通過參數(shù)化我們可以對一種命令只分析和編譯一次,而執(zhí)行多次,從而提高效率。在執(zhí)行時,如果每次提交語句,可以完成多條SQL語句,則可以減少通訊時間,也可以提高效率。 通過 System.Data.IDbCommand.Prepare() 方法,我們可以在第一次執(zhí)行語句時,分析和編譯SQL語句,然后保存這個Command對象,下次使用時,直接設(shè)置參數(shù)執(zhí)行。這個方法對Oracle和MsSql Server都有效。 如果執(zhí)行一批語句,在T-SQL和PLSQL中有一點不一樣。 在T-SQL中,多條SQL語句之間,使用分號";"分隔就行。 delete from TableA where id = @id;update TableB set Name=@name where id=@id begin delete from TableA where id = :id;update TableB set Name=:name where id=:id; end; sb.Append(@"delete from bak_WF_Log_EngineLog where FlowInstanceID= :instanceId;"); sb.Append("end;"); //準備一下以提高性能。 //設(shè)置參數(shù) //設(shè)置事務(wù) cmd.ExecuteNonQuery(); } 該文章在 2011/5/4 15:20:59 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |