2016-05-05 35 views
0

我需要爲測試目的製作一個緩慢的LINQ to SQL查詢。只是想看看我們的系統在有長時間運行的查詢時如何反應。如何纔能有意識地減慢LINQ to SQL查詢?

我有幾張高達50,000行的表,但我的查詢時間不到一秒鐘。我怎樣才能讓查詢運行很長一段時間?

+0

你嘗試添加許多條件?像 var somelist =(從db.Table中的m其中m.column1!=「sometext1」&& m.column2!=「sometext2」等等...... ??? 也寫了很多這樣的查詢並嘗試 – ViVi

+0

添加幾層子需求,增長將呈指數增長 – NathanOliver

+0

創建一個存儲過程,用'WAITFOR'返回記錄。 –

回答

0

傻了,我忘記了實際的數據庫訪問只發生在ToList()被調用時。我一直在想,我的查詢仍然超快,因爲我只是檢查設置查詢的行。

我能到我的查詢足夠放緩,但簡單地複製連接和where子句,這樣除了長5倍:

var query = 
       from aa in db.MyTable 
       from aa1 in db.MyTable 
       from aa2 in db.MyTable 
       from aa3 in db.MyTable 
       join bb in db.OtherTable on aa.PartNumber equals bb.PartNumber 
       join bb1 in db.OtherTable on aa1.PartNumber equals bb1.PartNumber 
       join bb2 in db.OtherTable on aa2.PartNumber equals bb2.PartNumber 
       join bb3 in db.OtherTable on aa3.PartNumber equals bb3.PartNumber 
       where 
        aa.Column == "something" && 
        aa1.Column == "something" && 
        aa2.Column == "something" && 
        aa3.Column == "something" && 
       select new 
       { 
        PropertyOne = pr.ColumnOne, 
        PropertyTwo = oo.ColumnTwo, 
       }; 

var list = query.ToList(); 
-1

您可以在查詢中使用連接和排序。操作的連接和順序滯後於SQL服務器。所以你的查詢結果時間會更長。