SQL Server 2005 查询的性能

2024-03-21

-------------------- 这需要 4 秒来执行(有 2000 000 行)为什么?---------------- -----

DECLARE @AccountId INT 
DECLARE @Max INT 
DECLARE @MailingListId INT 

SET @AccountId = 6730
SET @Max = 2000
SET @MailingListId = 82924

SELECT TOP (@Max) anp_Subscriber.Id , Name, Email 
FROM anp_Subscription WITH(NOLOCK) 
  INNER JOIN anp_Subscriber WITH(NOLOCK) 
    ON anp_Subscriber.Id = anp_Subscription.SubscriberId
WHERE [MailingListId] = @MailingListId 
  AND Name LIKE '%joe%' 
  AND [AccountID] = @AccountId

--------------------- 执行时间不到 1 秒(有 2000 000 行)---------------- --------

SELECT TOP 2000 anp_Subscriber.Id ,Name, Email 
FROM anp_Subscription WITH(NOLOCK) 
  INNER JOIN anp_Subscriber WITH(NOLOCK)
    ON anp_Subscriber.Id = anp_Subscription.SubscriberId
WHERE [MailingListId] = 82924 
  AND Name LIKE '%joe%' 
  AND [AccountID] = 6730

为什么执行时间不同?我想使用顶部的查询。我可以做些什么来优化它吗?

提前致谢! /基督教


Add OPTION (RECOMPILE)到查询的末尾。

SQL Server 不会“嗅探”变量的值,因此您将得到一个基于猜测统计数据的计划,而不是针对实际变量值量身定制的计划。

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

SQL Server 2005 查询的性能 的相关文章

  • Access SQL 查询:查找表中每个不同条目的最新日期行

    All 我确信这是一个非常简单的 SQL 查询问题 但我确信有一个很好的方法 也有一个非常糟糕的方法来做到这一点 如果由我自己决定 我很可能会得到后者 所以 我在 Access 中有一个表 其中的数据如下所示 ID Value As of
  • 当添加列较少时追加到现有 SQLite 表,而不将数据库读入 R

    是否有一些简单的方法 无论是在 SQL 端还是在 R 端 将 data frame 附加到具有更多列的现有表 缺失的列应该用 NA 填充 如果它能够优雅地处理比表 1 列数更多的表 2 那么会加分吗 library RSQLite Crea
  • SQL日期格式转换? [dd.mm.yy 至 YYYY-MM-DD]

    是否有 mySQL 函数可以将日期从 dd mm yy 格式转换为 YYYY MM DD 例如 03 09 13 gt 2013 09 03 由于您的输入是表单中的字符串03 09 13 我假设 因为今天是 2013 年 9 月 3 日 d
  • 在触发器中记录更新操作

    我有一个 UPDATE 触发器 它生成 INSERTED 和 DELETED 表 如下所示 INSERTED Id Name Surname 1 Stack Overflow 2 Luigi Saggese DELETED Id Name
  • Oracle中如何转义单引号? [复制]

    这个问题在这里已经有答案了 我有一列包含某些存储为文本字符串的表达式 其中包括单个引号 例如 错过的交易 包括引号 发生这种情况时如何使用 where 子句 select from table where reason missed tra
  • SQL 解析键值字符串

    我有一个像这样的逗号分隔字符串 key1 value1 key2 value2 key3 value3 key1 value1 1 key2 value2 1 key3 value3 1 我想将它解析成一个如下所示的表 Key1 Key2
  • C# 事务中的事务

    我正在使用 C 将发票的平面文件导入到数据库中 如果遇到问题 我将使用 TransactionScope 回滚整个操作 这是一个棘手的输入文件 因为一行不一定等于一条记录 它还包括链接记录 发票将包含标题行 行项目和总计行 有些发票需要跳过
  • 如何在一列中存储数组或多个值

    运行 Postgres 7 4 是的 我们正在升级 我需要将 1 到 100 个选定项目存储到数据库的一个字段中 98 的情况下 只会输入 1 个项目 而 2 的情况下 如果是这样的话 会输入多个项目 这些项目只不过是文本描述 截至目前 长
  • 将数组文字传递给 PostgreSQL 函数

    我有一个包含 select 语句的 Postgres 函数 我需要使用包含字符串值数组的传入变量添加条件 CREATE OR REPLACE FUNCTION get questions vcode text RETURN return v
  • 哪种 SQL 模式能够更快地避免插入重复行?

    我知道有两种不重复插入的方法 第一个是使用WHERE NOT EXISTS clause INSERT INTO table name col1 col2 col3 SELECT s s s WHERE NOT EXISTS SELECT
  • 如何从 SQL Server 中的存储过程检索参数列表

    使用 C 和 System Data SqlClient 有没有办法在实际执行 SQL Server 上的存储过程之前检索属于该存储过程的参数列表 我有一个 多环境 场景 其中同一数据库模式有多个版本 环境的示例可能是 开发 暂存 和 生产
  • 仅使用 SQL 中的 MAX 函数更新重复行

    我有一张这样的桌子 假设为了举例 NAME是一个唯一的标识符 NAME AGE VALUE Jack Under 65 3 Jack 66 74 5 John 66 74 7 John Over 75 9 Gill 25 35 11 Som
  • 在 Oracle 中创建数据库链接时出错

    我有两个数据库 需要编写跨数据库查询 所以我试图创建一个数据库链接 CREATE PUBLIC DATABASE LINK DBLink CONNECT TO SchemaName IDENTIFIED BY 123 using DBNam
  • Oracle Many OR 与 IN () 的 SQL 性能调优 [重复]

    这个问题在这里已经有答案了 我手头没有 解释计划 您能帮忙判断以下哪一个更有效吗 选项1 select from VIEW ABC where STRING COL AA OR STRING COL BB OR STRING COL BB
  • 为什么 Orchard 在执行内容项查询时如此慢?

    假设我想查询所有 Orchard 用户 ID 并且还想包括那些已被删除 也称为软删除 的用户 该数据库包含大约 1000 个用户 Option A 大约需要 2 分钟 Orchard ContentManagement IContentMa
  • 动态SQL生成列名?

    我有一个查询 我正在尝试将行值转换为列名称 目前我正在使用SUM Case As ColumnName 声明 像这样 SELECT SKU1 SUM Case When Sku2 157 Then Quantity Else 0 End A
  • SQL Not Empty 代替 Not NULL

    我正在使用 postgreSQL 我有一个专栏 NOT NULL 但是 当我想插入带有空字符串的行时 如下所示 它不会给我错误并接受 我如何检查插入值应该是not empty 既不为空也不为空 PS 我的专栏定义为 ads characte
  • 将两个sql查询合并为一个查询

    如何组合以下 2 个查询以便获得两列 PAYMODE 和付款类型 两个查询都很相似 并且针对同一个表 将两个 sql 查询合并为一个查询 这样我就不需要执行两个单独的查询 SELECT ETBL DESC TXT as PAYMODE FR
  • 单向关系和双向关系的区别

    我想知道这两个词是什么意思 我遇到他们是在教义的文档 http www doctrine project org documentation manual 2 0 en association mapping 但我不明白他们的意思 这与常见
  • 数据库“key/ID”设计思想、代理键、主键等

    因此 我最近看到多次提到代理键 但我不太确定它是什么以及它与主键有何不同 我总是假设 ID 是表中的主键 如下所示 Users ID Guid FirstName Text LastName Text SSN Int 然而 维基百科将代理键

随机推荐

  • 将嵌套配置 Yaml 映射到结构

    我是新手 我正在使用 viper 加载我的所有配置 目前我拥有的是 YAML 如下所示 countryQueries sg qtype gmap qplacetype postal code qtype gmap qplacetype ad
  • GWT 注册和登录表格

    有没有关于使用 Google Web Toolkit 创建注册表单和带密码的登录屏幕的好教程 看看google web toolkit incubator 的登录常见问题解答 http code google com p google we
  • Azure,错误 403 - 禁止:需要客户端证书

    我正在尝试在 Azure 中创建 应用程序服务 并在 设置 区域中设置 自定义域 和 TLS SSL 设置 ssl 绑定 SNI SSL 然后我通过 ftp 放置了一个 html 文件 并收到以下错误 错误 403 禁止 需要客户端证书 您
  • 重定向到不同路由时,FastAPI RedirectResponse 获取 {"message": "Forbidden"}

    请向我提出一个几乎不可能创建可重现示例的问题 我使用 Docker 无服务器和部署在 AWS API Gateway 上的 FastAPI 设置了 API 讨论的所有路由都受到传递到标头中的 api key 的保护 x api key 我正
  • 替换 LEFT OUTER JOIN 中返回的空值

    SELECT WO BreakerRail ID indRailType RailType indRailType RailCode WO BreakerRail CreatedPieces WO BreakerRail OutsideSo
  • Flutter:如何在代码中的每个列表项之间添加分隔线?

    如何将分隔线添加到列表中 我使用 Android 版 Flutter 我想在每个列表项之间添加一个分隔线 并且想要对分隔线进行着色并添加样式 我尝试添加new divider 但我有错误 我也尝试过return new divider 这是
  • Windows 窗体 - Tab 键在子面板中不起作用

    我有一个表单中的子面板 其中包含一些文本框和按钮 我尝试为这些控件设置 tabstop 和 tabindex 属性 以便用户可以从一个控件切换到下一个控件 但由于某种原因 制表符不起作用 当我按 Tab 键时 光标停留在具有焦点的同一字段上
  • 使用 CakePHP 提取 URL 值(参数)

    我知道 CakePHP 参数可以轻松地从 URL 中提取值 如下所示 http www example com tester retrieve test good 1 accepted active 我需要从 URL 中提取值 如下所示 h
  • 如何将 NSMutableString 绑定到 NSTextView 的值?

    好的 所以我正在尝试在 Xcode 中为自己设置一个非常简单的程序 我有一个窗口 在界面生成器中 其中包含一个 NSTextView 和一个 NSButton 在我的 AppController 类中 我声明了一个NSMutableStri
  • vc++下编译bison和flex程序时unistd.h相关困难

    我正在使用 bison flex 通过 cygwin 下载 和 vc 当我编译程序时 出现错误 fatal error C1083 Cannot open include file unistd h No such file or dire
  • 为过程或函数 cdc.fn_cdc_get_all_changes_ 提供的参数数量不足

    看似有效的代码 用于查询表中最新跟踪的更改Fields DECLARE Begin LSN BINARY 10 End LSN BINARY 10 SET Begin LSN sys fn cdc get min lsn Fields SE
  • Firefox 打开新选项卡而不是弹出窗口? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我发现在最新版本的 Firefox 中 添加了一个名为 在新选项卡中打开新窗口 的设置 当我保持打开状态时 所有弹出窗口 使用打开的jav
  • 将 Html.Partial 添加到 Javascript

    我想使用 ASP NET Html Partial 视图在 Javascript 中设置一个字符串 问题是 Html Partial 给出了 HtmlString 而不是我可以使用 JQuery 处理的 Javascript 字符串 Jav
  • 内嵌显示图像和文本

    我无法在标题的每一侧获取图像 我尝试过 display inline block 但这不适合我 这里是jsfiddle http jsfiddle net uyjmffbu inline image display inline block
  • 异常保证和按值传递

    我最近在多种情况下遇到过这个问题 其中表达的一些观点让我感到惊讶 这是第一个简单的例子 void f std vector
  • 在 Objective-C 中使用枚举?

    这是在 Objective C 中使用 emum 的正确方式 甚至是有效方式 吗 即不使用 menuItem 而只是定义了一个列表 add 1 load 2 list 3 等 enum menuItems add 1 save load l
  • AsyncTaskLoader:方向更改后未调用 onLoadFinished

    我有一个AsyncTaskLoader对于长时间运行的任务 当加载程序运行时 我的活动由于方向变化而被破坏 onLoadFinished回调未被调用 我可以以某种方式将加载程序 重新附加 到我的新活动 它的回调吗 这是我的 简化的 Acti
  • Django python 中的Search_fields

    我想知道如何使用外键来执行搜索 例如 class Product models Model name models CharField max length 127 description models TextField code mod
  • 将 mongodb 作为 Windows 服务运行

    我已经在 win32 上安装了 mongodb 我正在尝试将其作为服务运行 我已按照此处发布的说明进行操作 http www deltasdevelopers com post Running MongoDB as a Windows Se
  • SQL Server 2005 查询的性能

    这需要 4 秒来执行 有 2000 000 行 为什么 DECLARE AccountId INT DECLARE Max INT DECLARE MailingListId INT SET AccountId 6730 SET Max 2