我怎样才能故意减慢 LINQ to SQL 查询?
How can I make an intentionally slow LINQ to SQL query?
出于测试目的,我需要进行一个缓慢的 LINQ to SQL 查询。只是想看看我们的系统在出现长 运行 查询时如何反应。
我有几个最多 50,000 行的表,但我的查询只用了不到一秒钟。如何进行长时间运行的查询?
您可以在查询中使用联接和排序依据。连接和按操作排序滞后于 SQL 服务器。所以你的查询结果时间会比较长。
我真傻,我忘了实际的数据库访问只在调用 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();
出于测试目的,我需要进行一个缓慢的 LINQ to SQL 查询。只是想看看我们的系统在出现长 运行 查询时如何反应。
我有几个最多 50,000 行的表,但我的查询只用了不到一秒钟。如何进行长时间运行的查询?
您可以在查询中使用联接和排序依据。连接和按操作排序滞后于 SQL 服务器。所以你的查询结果时间会比较长。
我真傻,我忘了实际的数据库访问只在调用 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();