如何优化给定的 db2 查询,

2023-12-24

考虑如下我的 DB2 查询。

Select something from some tables,
(select something from some tables where bhla=bhla
Unionall
select something from some tables where bhla=bhla
union
select something from some tables where bhla=bhla) x 
where bhla=bhla

看起来像

select x.something, y.somethingelse from table y,
(select something from some tables where bhla=bhla
    Unionall
    select something from some tables where bhla=bhla
    union
    select something from some tables where bhla=bhla) x 
where bhla=bhla

我的查询是优化上述查询(更好地使用查询的方式)。 请提供一些有关索引及其使用方法的信息。 我需要优化上面的查询,所以请提出一些建议。

你们能建议如何重新编码下面的 where 子句吗

where

(ID.EXCH_RT <> 0.000000 AND ID.EXCH_RT IS NOT NULL)  
AND I.ACT_LOC_TS BETWEEN ( :Param_290_From_Date CONCAT ' 00:00:00.00000')  AND ( :Param_300_To_Date CONCAT ' 23:59:59.99999') 

无法根据给定的信息进行优化。

通常人们只是被提及如何提问 https://stackoverflow.com/questions/how-to-ask当他们问的问题不够具体时。然而,我看到了很多这样的具体案例:寻求帮助来优化定义不明确的 SQL 查询。所以我想更详细地解决这里的问题。

为什么不能优化这个?

  1. 我们不知道任务。优化是你为task,不是一段代码。您的目标是尽可能高效地完成任务。您发布的代码可能是也可能不是最好的方法。如果我们只有代码,而不知道代码的用途,我们就无法评估代码的适当性。

  2. 我们不知道表结构。 SQL 的优化很大程度上取决于相关表的结构。涉及哪些列以及哪些数据类型?这些表如何相互关联?在这种情况下,我们甚至不知道涉及多少张表,因为某些查询作用于“某些表”。

  3. 我们不知道数据。每张桌子有多大?考虑下面的示例查询。优化了吗?答案是,一切都取决于数据。如果table1很小并且table2很大,这将是优化查询的好方法。然而,如果table1是巨大的并且table2很小,这将是一个非常糟糕的查询设计,会浪费大量时间。如果不了解任何数据,就无法判断最佳设计。

  4. 这取决于您使用的数据库(谢谢沃伦)。在本例中,您指定了 DB2,与许多仅陈述“SQL”的问题相比,这是一个好的开始。但是,了解您正在使用的平台和版本仍然会有所帮助。这使得可用功能存在显着差异。

查询示例:

with complicated as (
    select id, 
        char(foo) || case when bar = 1234 then 'a' else 'c' end || 'baz'
             as complicated_field
        from table1
)
select * from table2
    join complicated on 
        complicated.id = table2.id and
        complicated.complicated_field = table2.some_field

我希望这是有帮助的。如果您提供更多信息,我们将很乐意为您提供进一步帮助。

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

如何优化给定的 db2 查询, 的相关文章

随机推荐

  • 如何在执行junit时自动生成时序图

    我在 Eclipse 中接到了 在执行 junit 测试用例时自动生成序列图 的任务 我正在学习UML 我找到了可以生成序列的工具 并且我知道 junit 但是我如何将这两者结合起来 我发现不错的工具有 UMLet ModelGoon UM
  • 使用 HOGDescriptor 的问题

    我正在摆弄一些c opencv 我正在查看一些样本 但还没有 设法编译 运行 peopleDetect cpp 它使用HOGDescriptor 我已经设置了一个基本的 Qt 控制台应用程序来测试和缩小问题范围 并得到了这个基本代码 inc
  • 类 static constexpr 的 C++ 链接器错误

    我正在编译以下简单程序g 4 6 1 std c 0x include
  • 在 ControlParameter 中找不到控件 ID

    我试图从文本框中插入值 但收到错误消息 无法在控制参数中找到 controlid TextBox 位于表单视图内 而表单视图位于列表视图内 SqlDataSource 位于 ListView 之外 我的 InsertButton Click
  • 使用 scipy 和 sympy 进行 Python 集成

    我想要一个自定义的 python 函数 采用数学表达式f x 积分的界限x1 x2和所需的耐受性tol Uses sympy integrate y x 检查它是否有解析 符号解 如果有则使用返回结果sympy integrate y x
  • 如何使用 Flutter 在 android studio 中进行代码折叠区域块

    我可以像这样在 android studio 中做区域块 region Description Your code here endregion 但如何与 flutter 一样呢 在 IntelliJ 或 Android Studio ID
  • 注入到 Vue.js 中的

    我有一些外部脚本需要加载到各个页面上 例如 Google Places Autocomplete Facebook API 等 显然 在每条路线上加载它们是没有意义的 但是文档没有解决这种相当常见的情况 此外 Vue 实例安装到主体内的标签
  • 导入多个 AngularJS 模块的工厂

    我想知道是否有一种方法可以将我在 AngularJS 模块中定义的所有工厂导入到控制器中 而不必将它们全部列出 假设我有一个名为foo js包含 angular module Foo factory Bar1 function factor
  • 如何将字符串转换为数组的名称?

    我有大量包含不同数据的数组 每个都有一个看起来像这样的名字 rsf wings isa wings isa ships isa civs etc 我有一个函数可以构建一个String arrayName从传递给它的各种组件中 public
  • (嵌入并)通过 D3 和/或 javascript 引用外部 SVG

    我有一个 svg 文件 想将其嵌入到我的 d3 图形的 svg 结构中 我还需要通过某些 g 元素的 id 引用附加到 g 元素的所有路径 多边形 我尝试了不同的方法来嵌入和引用 svg g s 但由于某些原因它不起作用 1 第一次尝试 F
  • Git 提交是快照,而不是差异。那么为什么需要 rebase 来删除旧的提交呢?

    我的理解是 无论出于何种意图和目的 Git 提交是快照 而不是差异 https github blog 2020 12 17 commits are snapshots not diffs 因此 尽管 Git 会在内部 增量压缩 快照以消除
  • 如何使涉及 future 尾递归的函数?

    在我的 Scala 应用程序中 我有一个函数调用一个返回 Future T 类型结果的函数 我需要在递归函数调用中传递映射结果 我希望这是尾递归的 但是地图 或 flatMap 破坏了这样做的能力 我收到错误 递归调用不在尾部位置 下面是此
  • android:生成不重复的随机数

    有人能帮我制作一种在 Android 中生成不重复的随机数的方法吗 最大数量为 prjcts size 这是我的 JSON 数组 并且返回值应该是整数 我已经拥有的是 int i int prjcts size Math random 我将
  • 限制node.js的内存使用

    我正在尝试限制node js应用程序使用大量内存 我发现 max stack size max executable sizeV8 中可在调用文件时传递的选项 但我应该如何结合这些和可能的其他参数来将最大内存使用量限制为 1GB https
  • 如何控制 XNA 在启动时定位游戏窗口的位置?

    我有以下烦恼 每当我开始调试 XNA 游戏时 游戏窗口就会在屏幕中央弹出 由于我有一个双显示器系统 我想在我的第二个显示器上设置默认启动位置 但是 这应该只发生在调试模式中 您需要添加对System Windows Forms and Sy
  • Node.js Cheerio 解析器破坏了 UTF-8 编码

    我用 Cheerio 解析我的请求 如下所示 var url http shop nag ru catalog 16939 IP videonablyudenie OMNY 16944 IP kamery OMNY c vario obek
  • NoneType'对象没有属性'find_all'出现错误

    我当时是网scraping使用 Beautiful Soup 的 Wikipedia 表 这是我的代码 Code URL https en wikipedia org wiki List of most viewed YouTube vid
  • 如何使用 Amazon S3 配置 django-compressor 和 django-staticfiles?

    我正在尝试设置Django 压缩器 https github com jezdez django compressor and django 静态文件 https docs djangoproject com en dev howto st
  • RoomDatabase_Impl 不存在

    当我尝试实现房间数据库时 出现以下错误 java lang RuntimeException cannot find implementation for com udacity gradle builditbigger Database
  • 如何优化给定的 db2 查询,

    考虑如下我的 DB2 查询 Select something from some tables select something from some tables where bhla bhla Unionall select someth