query-optimization相关内容

连接时的 BaseX 查询优化

在以下 Stackoverflow 中的问题得到修复后,我当我尝试进行如下联接时,还有另一个问题.最后一个查询需要大约 250 毫秒,而前两个查询只需要 16 毫秒.有没有更好的方法来执行两个项目之间的连接? 注意:您可以从这个链接中找到测试数据. 让 $PlGeTys :=/root/PlGeTys/PlGeTy[isOfPlCt/@href=/root/PlCts/PlCt[环境=' ..
发布时间:2021-06-30 19:23:01 其他开发

适合在排名函数中排序的索引

我有一个表格,用于保存项目之间的父子关系.那些可以随着时间的推移而改变,并且有必要保留完整的历史记录,以便我可以随时查询关系. 表格是这样的(我删除了一些列和主键等以减少噪音): 创建表 [tblRelation]([dtCreated] [datetime] NOT NULL,[uidNode] [uniqueidentifier] NOT NULL,[uidParentNode] [u ..
发布时间:2021-06-30 19:22:42 数据库

RethinkDB - 查找缺少字段的文档

我正在尝试编写最佳查询来查找所有没有特定字段的文档.有没有比我在下面列出的例子更好的方法呢? //获取所有缺少“location"的文档的idr.db("mydb").table("mytable").filter({location: null},{default: true}).pluck("id")//获取缺少“位置"的所有文档的计数r.db("mydb").table("mytable" ..
发布时间:2021-06-30 19:22:39 其他开发

来自 Joel Spolsky 文章的 SQL 问题

来自 Joel Spolsky 关于泄漏抽象的文章: [C] 某些 SQL 查询比其他逻辑上等效的查询慢数千倍.一个著名的例子是,一些 SQL 服务器在指定“where a=b and b=c and a=c"时比仅指定“where a=b and b=c"要快得多,即使结果集是一样的. 有谁知道详情吗? 解决方案 显然,a = b 和 b = c => a = c - 这与传 ..
发布时间:2021-06-30 19:22:36 其他开发

SQL ROW_NUMBER() 性能问题

我有这个运行良好的 SQL. 希望我的过滤器返回具有最高 UserSessionSequenceID 的最新唯一 SessionGuid. 问题是性能很差 - 即使我有很好的索引.我该如何重写 - 以省略 ROW_NUMBER 行? SELECT TOP(@resultCount) * FROM(选择[用户会话序列ID],[会话指南],[知识产权],[网址],[网址标题],[站点ID ..
发布时间:2021-06-30 19:22:30 数据库

哪个是删除插入与 if-update else-insert 的最佳选择?

更新: 我的错...我在这些表上有一个主键...我的意思是目前没有进一步的索引表.我们可能在看到性能后的未来,因为我们对数据有太多过滤器检索数据 上次我们运行数据库时,索引没有显示出太大的改进调整. 我有一个超过数百万条记录的 4 张大表.现在有一个经常调用的存储过程并更新这些表.这是场景 - 现在,如果今天存在条目,我需要为今天更新它,否则如果用户没有条目,我需要继续为用户插入 ..
发布时间:2021-06-30 19:22:21 其他开发

如何强制sql server先执行子查询并过滤'where'语句

我有一个这样的查询: select * from (从 TableX 中选择 *其中 col1 % 2 = 0) 子查询其中 col1 % 4 = 0 实际的子查询更复杂.当我单独执行子查询时,它可能会快速返回 200 行,但是当我执行整个查询时,等待时间太长. 我知道 sql server 在这里进行了一些优化并将 where 语句合并到子查询中,并生成了效率不高的新执行计划.虽然我可 ..
发布时间:2021-06-30 19:22:15 数据库

加速大表和小表之间的内连接

这可能是一个愚蠢的问题,但它可能会阐明联接在内部是如何工作的. 假设我有一个大表 L 和一个小表 S(100K 行 vs. 100 行). 以下两个选项在速度方面会有什么不同吗?: 选项 1: 选项 2:--------- ---------选择 * 选择 *从 L 内部连接 ​​S 从 S 内部连接 ​​LON L.id = S.id;ON L.id = S.id; 请注意,唯一 ..
发布时间:2021-06-30 19:22:12 其他开发

从表的不同条件中选择 COUNT

我有一个名为“jobs"的表.对于特定用户,作业可以是活动的、存档的、过期的、待处理的或关闭的.现在每个页面请求都会生成 5 个 COUNT 查询,并且在尝试优化时,我试图将其减少为单个查询.这是我到目前为止所拥有的,但它仅比 5 个单独的查询快.请注意,我简化了每个子查询的条件以使其更易于理解,但是完整查询的行为相同. 有没有办法在不使用低效子查询的情况下在同一个查询中获得这 5 个计数? ..
发布时间:2021-06-30 19:22:09 其他开发

如何比较两个查询?

我如何比较两个查询 X 和 Y 并说 X 比 Y 更好,因为它们在小案例场景中花费的时间几乎相同? 问题是我有两个查询应该在一个非常大的数据库上运行,所以运行和评估不是一个很好的选择.因此,我们创建了一个小型数据库来执行一些测试.评估哪个查询更好是一个问题,因为在我们的测试基础上,它们几乎同时运行(大约 5 分钟).除了返回所需的时间,还有什么方法可以衡量查询的好坏? 解决方案 SE ..
发布时间:2021-06-30 19:22:05 数据库

强制 SQL Remote 查询远程过滤而不是本地过滤

我有一个 MS SQL 查询,它通过远程服务器提取数据.我拉下的数据需要按运行时确定的日期进行过滤.当我像这样运行查询时: SELECT * FROM SERVER.Database.dbo.RemoteViewWHERE EntryDate >'1/1/2009' 然后远程应用过滤器......但是,我实际上不想使用“1/1/2009"作为日期 - 我希望日期由用户定义的函数提供,如下所示: ..
发布时间:2021-06-30 19:21:56 数据库

何时使用 OPTIMIZE FOR UNKNOWN 的经验

我已阅读 SQL Server 2008 的“OPTIMIZE FOR UNKNOWN"查询计划选项背后的理论和观点.我非常了解它的功能. 我做了一些有限的实验,发现使用热缓存,它只对 > 100k 行有益.然而,这是在一个简单的表和查询上,没有连接、过滤等.在冷缓存上,图片无疑会更有利. 我目前没有一个生产系统来测试之前/之后.因此,我很好奇是否有人在测试之前/之后进行了测试,并就何 ..

什么是自动覆盖索引?

在 SQLite 3 中使用 EXPLAIN QUERY PLAN 时,它有时会给我输出,例如 SEARCH TABLE staff AS USING AUTOMATIC COVERING INDEX (is_freelancer=? AND sap=?)(~6 行) 索引从何而来,它有什么作用?该表没有手动创建的索引. 解决方案 "Automatic" 表示 SQLite 创建一个临 ..
发布时间:2021-06-30 19:21:50 数据库