sql-server - 为什么 SQL Server 上的查询速度慢而过程速度快?

标签 sql-server sql-server-2005

为什么如果我将查询作为参数化过程运行,它的运行速度比直接作为参数化查询运行快 10 倍?

我在这两种情况下都使用完全相同的查询,无论是从 Management Studio 调用还是从代码调用 SqlCommand 都没有关系。

编辑:执行计划看起来不同。所以为什么?我使用完全相同的一组参数来调用它。

编辑:经过更多测试,似乎仅在从 SQL Management Studio 运行参数化查询时才会出现 10 倍的减速。

最佳答案

我最近看到的一件事是,如果查询参数设置错误,可能会导致严重问题。

例如,假设您有一个索引 varchar 列的参数,并使用 SqlCommand 的 AddWithValue() 方法从 .Net 对其进行设置。在这种情况下,你将陷入一个痛苦的世界。 .Net 使用 unicode 字符串,并将您的参数设置为 nvarchar 而不是 varchar。现在 sql server 将无法使用您的索引,您将看到显着的性能损失。

关于sql-server - 为什么 SQL Server 上的查询速度慢而过程速度快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/577796/

相关文章:

c# - 使用 OPENJSON 将两个数组的对象插入 SQL 数据库

sql-server - 获取 TransactSql 批处理中的语句数计数

mysql - 定期从远程sqlserver拉取数据到本地mysql

c# - EDML 生成模型的代码在哪里?

sql - SQL Server 的 .SQL 文件或变量的最大大小?

sql - 删除并重新使用存储过程中的临时表

python - 将 Vabinary(Max) 更改回文本<MS SQL "2005">

sql-server - 令人困惑的 IDENTITY_INSERT 错误,表示它已经在另一个表中

c# - 无需备份权限即可远程备份 SQL Server 数据库

.net - 为什么 VFP .NET OLEDb 提供程序不能在 64 位 Windows 中工作?