SQL 游标...您会捍卫哪些用例?

2023-11-30

我先走了。

我100%属于设定操作阵营。但是当设置逻辑时会发生什么 在整个所需的输入域上进行搜索会导致如此大的检索,以至于查询速度显着减慢,变得缓慢,或者基本上需要无限的时间?

在这种情况下,我将使用一个很小的游标(或 while 循环)来处理可能最多的几十行(而不是我的目标数百万行)。因此,我仍在(分区子)集中工作,但我的检索运行得更快。

当然,更快的解决方案是从外部并行调用分区输入域,但这会引入与外部系统的交互,并且当可以通过串行循环实现“足够好的”速度时,可能不值得它(特别是在开发过程中)。


我遇到过很多情况,或者在许多元编程场景中,必须读取配置表中的行并生成和执行代码。

在某些情况下,游标的性能只是因为优化器不够智能而表现出色。在这些情况下,要么你脑子里有元信息,这些元信息根本没有通过表上的索引或统计信息透露给优化器,要么代码太复杂,以至于连接(通常是重新连接)可以简单地进行。不会以基于光标的方式可视化它们的方式进行优化。在 SQL Server 2005 中,我相信 CTE 往往会使代码看起来更简单,但很难知道优化器是否也将它们视为更简单 - 这归结为将执行计划与您认为可以完成的方式进行比较最有效地拨打电话。

一般规则 - 除非必要,否则不要使用光标。但必要时,不要为难自己。

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

SQL 游标...您会捍卫哪些用例? 的相关文章

  • 在sqlite SQL语句中与order by子句结合使用limit

    下面的两条 SQL 语句总是会产生相同的结果集吗 1 SELECT FROM MyTable where Status 0 order by StartTime asc limit 10 2 SELECT FROM SELECT FROM
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • 当所有维度值都具有 100% 重要性时处理多对多维度

    我至少会尽力保持简洁 假设我们正在跟踪一段时间内的账户余额 所以我们的事实表将包含诸如 账户余额情况表 FK 账户ID FK 日期ID Balance 显然你有一个账户维度表 and a 日期维度表 所以现在我们可以轻松地过滤帐户或日期 或
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下
  • 重命名重复行

    这是我的问题的一个简化示例 我有一个表 其中有一个包含重复条目的 名称 列 ID Name 1 AAA 2 AAA 3 AAA 4 BBB 5 CCC 6 CCC 7 DDD 8 DDD 9 DDD 10 DDD 进行 GROUP BY 操
  • 用更轻的解决方案替换完整的 ORM(JPA/Hibernate):推荐的加载/保存模式?

    我正在开发一个新的 Java Web 应用程序 并且正在探索保存数据的新方法 对我来说是新方法 我主要有 JPA 和 Hibernate 的经验 但是 除了简单的情况之外 我认为这种完整的 ORM 可能会变得相当复杂 另外 我不太喜欢和他们
  • 为表中的每个组选择前 N 行

    我面临一个非常常见的问题 即 为表中的每个组选择前 N 行 考虑一个表id name hair colour score列 我想要一个结果集 对于每种头发颜色 都能得到前 3 名得分手的名字 为了解决这个问题 我得到了我所需要的Rick O
  • 自加入表

    我有一张像这样的桌子 Employee name salary a 10000 b 20000 c 5000 d 40000 我想获取所有工资高于A工资的员工 我不想使用任何嵌套或子查询 在采访中被问及并暗示是使用自连接 我真的不知道如何实
  • SQL Server 列名区分大小写

    我使用的数据库具有 French CI AS 排序规则 CI 应该代表不区分大小写 但无论如何都是区分大小写的 我试图理解为什么 我断言这一点的原因是 使用 GIVEN 案例设置进行批量插入失败 但使用另一个 Given 案例设置则成功 例
  • 更改表分布(Azure 数据仓库)

    在急着下班的过程中 我在一个采用循环分配的新桌子上运行了一个大型插入 我知道这不太可能 但是有没有办法将表的分布从循环更改为哈希分布 很遗憾ALTER TABLE不支持更改 Azure SQL 数据仓库中表的分布 您可以做的下一个最好的事情
  • C#的数组列表可以用来填充SSIS对象变量吗?

    我已在 C 脚本中填充了一个列表 并将其值分配给 SSIS 对象变量 然后 我使用该对象变量通过循环遍历 For every do 枚举器来执行一些 SQL 查询 我尝试通过 Foreach ado 枚举器执行此操作 但出现错误 X 变量不
  • 为什么我的 CASE 语句要求 THEN 部分的数据类型为 INT?

    我正在尝试运行一个查询 其中以下 CASE 语句是其中一行 我正在使用报表生成器 3 0 但是 我收到一条错误消息 将 varchar 值 Case 1 转换为 int 数据类型时转换失败 Microsoft SQL Server 错误 2
  • SQL Server 2014 安装中缺少 SQL Server Integration Services

    我正在尝试使用 Integration Services 安装 SQL Server 2014 Here https www microsoft com en US download details aspx id 42299是我以前用工具
  • 如何使用 LAMBDA 表达式在 LINQ 中执行 IN 或 CONTAINS?

    我有以下 Transact Sql 我正在尝试将其转换为 LINQ 并且很挣扎 SELECT FROM Project WHERE Project ProjectId IN SELECT ProjectId FROM ProjectMemb
  • 如何获得顶部带有千位分隔符的数字?

    SELECT count FROM table A 假设结果是8689 我怎样才能将它转换为8 689在 SQL Server 上 尝试这样 select replace convert varchar convert Money coun
  • 如何跨多个表强制执行 CHECK 约束

    我有一个在 Microsoft SQL Server 2012 Express 中记录奶牛繁殖信息的数据库 显然 一头牛只有在出生后才能配种 并且在其一生中可能会配种多次 我需要在我的数据库中强制执行这些约束 我目前已经根据下图安排了一个架
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤

随机推荐

  • 如何在 flutter 中使用自定义 Clipper 制作弯曲的应用程序栏

    嗨 我是颤振新手 I am trying to make this app bar this is my final goal 我尝试按照一些教程制作弯曲的应用程序栏 但我无法得到与我想要的相同的结果 after some googling
  • INVALID_ARGUMENT:应用程序凭据标头无效。请修复客户端以传递有效的应用程序凭据标头

    当尝试运行简单的 Android Instant App 时 我在控制台中收到此错误 并且应用程序无法打开 此错误是什么意思以及如何传递有效的凭据标头 有一个已知问题 即不允许模拟器与即时应用程序后端通信 从而导致此错误 如果您尝试使用模拟
  • 使用字符串变量作为变量名[重复]

    这个问题在这里已经有答案了 我有一个分配有字符串的变量 我想根据该字符串定义一个新变量 foo bar foo something else What I actually want is bar something else 您可以使用e
  • Plotly:如何检查和更改绘图图形?

    相关问题已经被问过 例如 如何搜索绘图图形特定属性的选项 Plotly 如何检查基本图形结构 版本 4 但这些问题的答案受到以下事实的限制 并非所有参数都可以通过 Python 获得 这意味着真正的答案隐藏在 JavaScript 中的某个
  • 如何合并两个priority_queue?

    我有两个priority queue with float像这样 std priority queue
  • 无法将 Null 值分配给可为 Null 的 Int32?通过绑定

    无法通过 TextBox 绑定将 null 值分配给 Int32 如果 TextBox 为空 则不会调用 Int32Null Set TexBox 周围有红色边框 表示验证异常 这作为 Int32 没有意义 可以为空 如果用户从 TextB
  • AngularJS:绑定到服务属性的正确方法

    我正在寻找如何绑定到 AngularJS 中的服务属性的最佳实践 我已经通过多个示例来了解如何绑定到使用 AngularJS 创建的服务中的属性 下面我有两个示例说明如何绑定到服务中的属性 他们都工作 第一个示例使用基本绑定 第二个示例使用
  • 如何让exe文件只在一台电脑上运行

    我使用 C 编写了一个程序 并使用高级安装程序制作了 exe 文件 它工作得很好 但我想让这个 exe 文件在一台计算机上工作 因为有些 clints 获取 exe 并将此 exe 交给另一个 我想将其保密并保护我的作品 在您想要 exe
  • OpenCV VideoWriter 帧率问题

    我正在尝试将 1080p 网络摄像头的视频录制到文件中 我在视频中设置了一个计时器 在每次试验中 视频播放器 我使用的是 VLC 报告的时间戳与视频中的时间不同步 它总是会关闭几秒钟 通常视频内计时器比玩家报告的时间快 如下所示 我将 C
  • Spring MVC 拦截器映射问题

    我有这段 XML
  • 从线程触发时,C# ShowDialog() 不会阻止主窗体

    我有一个 Windows 窗体应用程序 带有一个主窗体和多个后台线程 为了显示 好 消息 我使用以下方法实现了一个显示为模式对话框的表单ShowDialog 所有的电话ShowDialog 在主窗体的窗体级别 而不是在线程级别 实现 但有时
  • Mogenerator 和 Xcode 4 的优点/缺点

    我对核心数据集成有点陌生 并且发现了许多代码示例和教程 有些人建议使用 Mogenerator 生成实体子类 这是一种较旧的方法吗 Xcode 允许无需第三方工具即可为实体生成子类 任何人都可以提供为什么我会选择使用 Mogenerator
  • 在 JavaScript 变量中存储 HTML 或 XML 代码

    我想在 javascript 变量中存储一些 HTML XML 标记 问题是文字比较大 例如 如何将以下 XML 片段存储在 javascript 变量中
  • lushdb没有清除redis中的所有键?

    It seems there are still some keys left after i ran redis SHELL command flushdb 这些键的用途是什么以及为什么flushdb不起作用 当Redis运行时flush
  • PHP:获取与另一个字符串数组的子字符串匹配的字符串数组的数组值[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 有两个数组 strings array Apple B
  • 语法错误 - 当前未启用对实验性语法“decorators-legacy”的支持

    我正在尝试使用装饰器构建 JS React 项目 我的 babelrc 看起来像这样 presets babel preset env babel preset react plugins babel plugin transform ru
  • 对象字段与 Django 的 ORM 的比较

    Django 的 ORM 是否支持使用小于 大于运算符来比较不同表中的列 例如 我尝试比较 Django 查询中的两个对象字段 该查询的 SQL 等效项为 SELECT a id FROM mytable a LEFT OUTER JOIN
  • 类析构函数的实际应用

    我目前正在尝试了解类和构造函数 析构函数 我理解两者的作用 但我在析构函数方面遇到了困难 因为我想不出它的实际应用 任何人都可以提供一个例子并进行解释吗 析构函数是用于释放对象分配的任何资源的特殊成员函数 最常见的例子是当类的构造函数使用n
  • Java Swing 中放置 JSeparator 后的间隙大小

    我在 Java Swing 中遇到一个简单的问题 我将代码简化为以下代码片段 我不确定如何最小化水平 JSeperator 与下一个 JTextField 之间的间隙大小 因为当前代码在两者之间产生巨大间隙 GroupLayout layo
  • SQL 游标...您会捍卫哪些用例?

    我先走了 我100 属于设定操作阵营 但是当设置逻辑时会发生什么 在整个所需的输入域上进行搜索会导致如此大的检索 以至于查询速度显着减慢 变得缓慢 或者基本上需要无限的时间 在这种情况下 我将使用一个很小的游标 或 while 循环 来处理