簡體   English   中英

使用Entity Framwork添加記錄與使用ado調用將記錄添加到數據庫的存儲過程

[英]Using Entity Framwork to add records vs using ado to call a stored procedure that adds records into a database

我們正在使用Entity Framework 4.0,並且有一種情況,我們正在使用類似於下面的代碼將記錄添加到數據庫中,並且正在超時。 我們將實體框架調用換成對存儲過程的ADO.Net調用,該調用在15秒內完成。 有任何想法嗎?

如果沒有將此代碼包裝為“使用”,是否有可能導致此問題?

ENTITY-TABLENAME d = new ENTITY-TABLENAME();

d.COLUMN1 = batchNo;
d.COLUMN2 = lineNo;
d.COLUMN3 = "N";
d.COLUMN4 = "N";
d.COLUMN5 = year;
d.COLUMN6 = month;
d.COLUMN7 = distributorPA;
d.COLUMN8 = dealerPA;
d.COLUMN9 = dealerPA;
d.COLUMN10 = fordPartNo;
d.COLUMN11 = quantity;
d.COLUMN12 = "0";
d.COLUMN13 = 0;
d.COLUMN14 = 0;
d.COLUMN15 = 0;
d.COLUMN16 = "";
d.COLUMN17 = User.Identity.Name;
d.COLUMN18 = DateTime.Now;
d.COLUMN19 = User.Identity.Name;
d.COLUMN20= DateTime.Now;

db.ENTITY-TABLENAME.Add(d);

此查詢中沒有可疑對象。 我不敢相信,不使用任何關系,沒有引用(僅包含一個表)的查詢可能會導致超時。 您確定沒有涉及復雜的關系嗎? 沒有外鍵? 沒有引用其他表實體?

我還要說,無論您使用存儲過程還是實體框架,執行15秒都太慢了! 也許您的SQL Server或一般的特定計算機出了問題。 您應該使用相應的工具(如“ 監視資源使用情況”工具)檢查其資源可用性。

無論如何,沒有任何關於性能的假設是安全的。 我將使用像SQL Server Profiler這樣的分析器來查看在其上翻譯LINQ to Entities查詢的實際SQL查詢。 我相信它可以提供有用的見解。

希望我能幫上忙!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM