在SQL Server中删除查询的性能很差
问题描述:
我有一个应用程序正在使用实体框架进行数据库操作。在执行删除操作时,在一张表中需要3分钟以上。但其他类似的桌子并不需要太多时间。我调试了代码,发现代码没有问题。但是在sql server中执行查询花费了很多时间。在SQL Server中删除查询的性能很差
任何疑难解答步骤/此问题的根本原因?
我的表如下,
Id (PK,uniqueidentifier,not null)
FirstValue(real,not null)
SecondValue(real,not null)
ThirdValue(real,not null)
LastValue(int,not null)
Config_Id(FK,uniqueidentifier,not null)
答
东西是不添加在这里,我们没有看到全貌......
有是很多可以减缓删除速度的东西(通常):
- 删除了很多纪录(我们知道是不是这里的情况)
- 许多指标(我怀疑这里是这样)
- 死锁和阻塞(这是一个开发或生产数据库?)
- 触发
- 级联删除
- 事务日志需要增长
- 许多外键检查(我怀疑这也可能发生)
你可以PL轻松地给我们一个SSMS中的“视图依赖”功能的截图?要获得此信息,请右键单击对象资源管理器中的表格,然后选择View Dependencies
。
此外,您还可以打开master
数据库查询,运行下面的查询和发布结果:
SELECT name, value, value_in_use, minimum, maximum, [description], is_dynamic, is_advanced
FROM sys.configurations WITH (NOLOCK)
where name in (
'backup compression default',
'clr enabled',
'cost threshold for parallelism',
'lightweight pooling',
'max degree of parallelism',
'max server memory',
'optimize for ad hoc workloads',
'priority boost',
'remote admin connections'
)
ORDER BY name OPTION (RECOMPILE);
SELECT DB_NAME([database_id]) AS [Database Name],
[file_id], [name], physical_name, [type_desc], state_desc,
is_percent_growth, growth,
CONVERT(bigint, growth/128.0) AS [Growth in MB],
CONVERT(bigint, size/128.0) AS [Total Size in MB]
FROM sys.master_files WITH (NOLOCK)
ORDER BY DB_NAME([database_id]), [file_id] OPTION (RECOMPILE);
如何删除你的数据?否则很难回答。 –
有多少外键引用你的表? –
@EvaldasBuinauskas 使用实体框架删除数据。我也查询了一个查询。 DELETE FROM [dbo]。[Values] WHERE [Id] ='a3e57902-f358-4283-978c-37f9cd00793r' GO – LahiruD