存储过程执行需要时间

2024-04-26

我在 SQL Server 中面临一个非常奇怪的问题,我有一个存储过程,并且我正在从 C# 代码执行该过程。该过程将返回一个数据表/数据集。

我的问题是,C# 代码/ADO.NET 代码的执行过程花费了太多时间(大约 2 分钟)。但是当我从 SQL Server 执行相同的查询时,它会在一秒钟内执行。

另外,我尝试使用相同的代码(旧过程代码)创建新过程,当我从 ADO.NET 执行这个新过程时,并没有花费太多时间。它在 C# 中第二次执行。

所以我不明白我的旧程序有什么问题。


我猜测当从代码调用该过程时您的执行计划很糟糕。当您运行存储过程时,您将有一个不同的计划,因为默认情况下从 SSMS 运行时计划签名不同。

see: http://www.sommarskog.se/query-plan-mysteries.html http://www.sommarskog.se/query-plan-mysteries.html一些可能的修复和清晰度。

如果您的过程参数较多,则每次使用时进行编译可能是有意义的option(recompile);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

存储过程执行需要时间 的相关文章

  • 将文件存储在文件系统上或在 SQL Server 中存储为 varbinary(MAX)

    我知道 对于将文件作为 blob 存储在数据库中是否是不好的做法存在很多争议 但我只是想了解这对于我的情况是否有意义 我正在创建一个 ASP NET 应用程序 在一家大公司内部使用 用户需要能够将文件附加到系统中的 作业 这些文件通常是 P
  • 从同一个表复制行并更新 ID 列

    我有下表 我已将产品 B 插入其中 它给我的 ID 为 15 然后我有定义表 如下所示 我想选择 ProdID 14 的 ProductDefinition 行并复制相同的行并将其插入到 ProdID 15 中 如下所示 如何使用 SQL
  • 通过 Plesk 面板托管 SQL Server 数据库时出现问题

    首先 我提供有关我的产品订阅的信息 我还订阅了一年的 Plesk Windows 托管 终极 订阅 此外我还订阅了一年的 SiteLock 我正在尝试使用 SQL Server 数据库托管 ASP NET 网站 但我很难做到这一点 首先 我
  • 获取ADO.NET中的参数前缀

    我想使用列名作为参数基于列列表生成多个 SQL 语句 Edit C var columns new string COL1 COL2 var tableName TABLE 1 var prefix TODO get this from t
  • 尝试通过 knex 连接到 Mssql 服务器

    我正在尝试使用 knex 连接到远程数据库 但收到此错误 乏味已弃用默认值options encrypt将会改变自false to true 请通过false如果您想保留当前行为 请明确地表示 在node modules mssql lib
  • 没有列名列表的tsql标识插入

    我要将一些数据从一个数据库转储到另一个数据库 我在用 set identity insert MyTable on GO INSERT INTO MyTable SELECT FROM sourceDB dbo MyTable GO set
  • 如何用NULL替换空格

    我在 sql server 2012 中有一个包含空格的列 我想用 NULL 替换这些空白 我已经编写了以下查询 但它不起作用 SELECT replace COLUMN1 NULL FROM Orders 如何实现上述功能 提前致谢 Us
  • SQL Proc 从 varchar 到 int 的“转换失败”。为什么要转换?

    我的问题是 为什么它从 varchar 转换为 int 我不确定它想做什么 CREATE PROCEDURE myTestProcedure TransId VARCHAR 15 AS BEGIN DECLARE Result VARCHA
  • 使用 EntityFramework 使用空参数值调用存储过程

    我在 sqlserver 2008 上有一个存储过程 其中一个参数接受空值 我不知道如何使用参数上的空值来调用该 SP 为了获得更多上下文 我正在使用 EntityFramework 6xx 在下一个示例中 参数 status Compat
  • 使用不存在和联接的 SQL 查询到 LINQ 语法

    我的 SQL 查询如下所示 在 SQL 中运行良好 我需要将其转换为 LINQ 语法 SQL SELECT Key Id FROM LocalizationKeys AS lk WHERE NOT EXISTS SELECT 1 FROM
  • SQL Server 将 SP_EXECUTESQL 识别为对象而不是过程名称

    我在用DBContext Database SqlQuery
  • 触发器以捕获服务器中的架构更改

    是否可以实现类似以下触发器的东西 CREATE TRIGGER tr AU ddl All Server ON DATABASE WITH EXECUTE AS self FOR DDL DATABASE LEVEL EVENTS AS D
  • 需要帮助在 MS Access 中实施完全外部联接

    我无法让查询在 Access 中正常工作 我需要 dbo cardpurchases 和 dbo vendors 上的完整外部联接 以便所有所有供应商都将出现在查询中 无论是否在该供应商处进行购买 但 Access 不支持完全外部联接 我还
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • SSIS ForEach File 循环 - 将文件名插入表

    我正在构建一个 SSIS 包 使用 VS 2017 来从特定文件夹加载一堆 CSV 文件 使用 ForEach File 循环效果很好 数据流任务具有平面文件源和 OLE DB 目标 我希望能够将文件名以及 CSV 文件中的数据保存在同一个
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10
  • 将 Python 中创建的 pandas 数据框插入 SQL Server

    如前所述 我在 Python 中创建了一个数据集合 40k 行 5 列 我想将其插入 SQL Server 表中 通常 在 SQL 中我会做一个 select into myTable from dataTable 调用来执行插入 但是 p
  • 当我尝试连接到数据库时收到“错误:无法初始化 OLE”? C#

    我正在尝试通过 C 连接到数据库 但这样做时收到一条非常无用的错误消息 08 44 17 错误 无法初始化 OLE 08 44 17 错误 无法初始化 OLE 我尝试寻找解决方案 但没有成功 我也尝试重新启动计算机 但这也没有帮助 我正在运
  • C# 事务中的事务

    我正在使用 C 将发票的平面文件导入到数据库中 如果遇到问题 我将使用 TransactionScope 回滚整个操作 这是一个棘手的输入文件 因为一行不一定等于一条记录 它还包括链接记录 发票将包含标题行 行项目和总计行 有些发票需要跳过
  • 尝试使用 SQL 身份验证登录失败

    我正在尝试使用 sa 用户名及其密码连接到 SQL Server 2008 在 SQL Server 日志文件中我看到以下错误 用户 sa 登录失败 原因 尝试使用 SQL 登录 认证失败 服务器配置为 Windows 身份验证 仅有的 当

随机推荐

  • 设计和处理闪光灯

    我正在将 Devise 3 1 1 与 Rails 3 一起使用 并且我的布局中有以下闪存处理代码 我登录我的应用程序 Flash 说 Signed in successfully 然后注销 然后错误登录并闪烁显示 Signed out s
  • iPhone:如何编写减少倒数计时器的代码?

    我想使用显示倒计时器UILabel将从 5 开始并且每秒减少 1 like 5 4 3 2 1 最后当达到 0 时隐藏标签 我尝试使用它进行编码NSTimer scheduledTimerWithTimeInterval但惨败 请帮我 我只
  • 使用 Jest 模拟 Es6 类

    我正在尝试使用接收参数的构造函数来模拟 ES6 类 然后使用 Jest 模拟该类上的不同类函数以继续测试 问题是我找不到任何有关如何解决此问题的文档 我已经看过了这个帖子 https stackoverflow com questions
  • Java:为 Polynomial 类创建 toString 方法

    public String toString String mytoString if a equals 0 mytoString a toString x 2 if b equals 0 mytoString b toString x i
  • 我什么时候应该按值传递或返回结构体?

    在 C 中 结构体可以按值传递 返回 也可以按引用 通过指针 传递 返回 普遍的共识似乎是前者可以应用于小型结构 在大多数情况下不会受到惩罚 看在任何情况下 直接返回结构是一种好的做法吗 https stackoverflow com a
  • LINQ 生成具有重复嵌套选择的 SQL

    我对 NET 实体框架非常陌生 我认为它很棒 但不知怎的 我遇到了这个奇怪的问题 抱歉西班牙语 但我的程序是用那种语言写的 无论如何 这没什么大不了的 只是列或属性名称 我正在执行正常的 LINQ To Entities 查询来获取 Ult
  • 如何用Java处理来自客户端的Websocket消息?

    我正在使用 Websocket 用 Ja va 开发客户端 服务器应用程序 目前 所有客户端消息均使用 switch case 进行处理 如下所示 OnMessage public String onMessage String unscr
  • 如何使用 github actions OIDC 功能在 github actions 中使用无服务器框架

    我已经关注了这个问题如何在不使用密钥的情况下将 GitHub 操作与 AWS 部署连接起来 https stackoverflow com questions 69243571 how can i connect github action
  • Clojure 函数 - 返回最后一条语句之前计算的值

    我有一些用 Clojure 编写的测试 这是一个简单的例子 defn test1 start server run pvt and expect PVT 0 stop server 我想返回 run pvt and expect 的结果 但
  • 使用bulk_insert_mappings

    我正在尝试批量插入以下形式的大量字典列表 results attribute u SEX value d 0 0 value s u M sid 1L attribute u SEX value d 0 0 value s u M sid
  • PlantUML 和 Graphviz 插件设置 PHPstorm

    我已经设置好了PlantUML插件PhpStorm 我已经下载了图形可视化 2 36并安装在我的机器上 我已经搜索过如何设置Graphviz为了使用PlantUML做一个UseCase in PhpStorm 但我找不到任何信息 我不太清楚
  • 如何通过VBA获取当前Excel实例的进程ID,而不使用标题?

    如何获取运行 VBA 代码的当前 Excel 实例的进程 ID 我不想通过标题中的名称来请求它 当我有两个或多个具有相同标题的 Excel 实例时 这会导致问题 您可以使用此方法来获取当前进程ID Declare Function GetC
  • 关闭 genymotion 模拟器的正确方法是什么?

    有趣的是 我总是通过关闭模拟器的窗口 右上角的 X 是的 来关闭它 现在 如果在此期间模拟器中没有任何内容损坏 我会以某种方式感兴趣 令人惊讶的是 谷歌搜索不到任何关于这一点的信息 我有同样的问题 Windows 8 1 GenyMotio
  • 从黑莓中的url获取数据

    我有一个文件的网址 http www example com 123 aes 它包含超过2MB的mp3文件的数据 现在我想从这个网址获取数据 当我尝试 http 连接来获取数据时 它显示错误 请求的实体太大 如何解决这个问题呢 我的代码如下
  • 使用python在scattermapbox中围绕点绘制多边形

    我在用散点图箱 https plotly com python scattermapbox 在地图上绘制点 我想画出覆盖的多边形 x milePOI 的半径 dcc Graph id map graph application callba
  • Go 中带有 TTL 选项的映射

    我需要构建这样的数据结构 map string SomeType 但它必须将值存储大约 10 分钟 然后从内存中清除 第二个条件是记录数量 它必须是巨大的 该数据结构必须至少添加每秒 2 5K 条记录 那么 Go 中最正确的实现方法是什么
  • HTML 5 视频拉伸

    您能让视频 拉伸 到视频元素的宽度和高度吗 显然 默认情况下 视频会按比例缩放并适合视频元素 thanks 我已经使用 object fit fill in CSS 进行了测试 效果很好 video object fit fill 来自 M
  • 泽西岛 java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer

    我正在尝试使用 jersey 库使用 Tomcat 和 Eclipse 制作一个 Web 服务 这是我的服务类别 package com gontuseries university import javax ws rs core Medi
  • 如何在 symfony 5 中将所有 Http 异常格式化为 json?

    在 symfony5 控制器中 我可以通过以下方式返回 json 响应 return this gt json key gt content 然而 当我抛出 HttpException 时 我会在开发和生产中看到默认的 html 错误页面
  • 存储过程执行需要时间

    我在 SQL Server 中面临一个非常奇怪的问题 我有一个存储过程 并且我正在从 C 代码执行该过程 该过程将返回一个数据表 数据集 我的问题是 C 代码 ADO NET 代码的执行过程花费了太多时间 大约 2 分钟 但是当我从 SQL