query-optimization相关内容
我正在编写这样的查询: select * from myTable where X in (select X from Y) and XX in (select X from Y) 来自 X 和 XX 列的值必须在同一个查询的结果中:select X from Y. 我认为这个查询被调用了两次,所以它毫无意义.有没有其他选择可以更有效地编写此查询?也许是临时表? 解决方案 实际上
..
这与为什么SQLite拒绝使用可用索引有关? 创建数据库的查询是: 创建表 foo(id TEXT);在 foo(id) 上创建索引 `foo.index`;CREATE TABLE bar(id TEXT);CREATE INDEX `bar.index` ON bar(id);CREATE VIEW baz AS SELECT id FROM foo UNION ALL SELECT
..
在以下 Stackoverflow 中的问题得到修复后,我当我尝试进行如下联接时,还有另一个问题.最后一个查询需要大约 250 毫秒,而前两个查询只需要 16 毫秒.有没有更好的方法来执行两个项目之间的连接? 注意:您可以从这个链接中找到测试数据. 让 $PlGeTys :=/root/PlGeTys/PlGeTy[isOfPlCt/@href=/root/PlCts/PlCt[环境='
..
场景:数据库是sqlite(需要对数据库中的记录进行加密.因此使用了iOS的SQL cipher API) 数据库中有一个名为partnumber的表,其架构如下: CREATE TABLE partnumber (objid varchar 主键,描述 varchar,制作varchar,模型varcha,零件号 varchar,SSOKey varchar,PMOKey varchar
..
我没有多想就写了这个查询,但作为初学者,我几乎可以肯定它可以写得更好. 这里是: SELECT filehash, filename, filesize, group_files来自文件INNER JOIN ( SELECT filehash group_id,COUNT(filehash) group_files来自文件GROUP BY filehash) 组ON files.file
..
我有一个表zhihu_answer_increment,它被列ym分区.当我执行查询 select distinct(ym) from zhihu.zhihu_answer_increment; 时,花了 1 多分钟才完成.在此过程中,hive 启动了 map-reduce 作业.这是日志: INFO : MapReduce 作业启动:信息:阶段-阶段-1:映射:1 减少:1 累积 CPU:3.
..
我有一个表格,用于保存项目之间的父子关系.那些可以随着时间的推移而改变,并且有必要保留完整的历史记录,以便我可以随时查询关系. 表格是这样的(我删除了一些列和主键等以减少噪音): 创建表 [tblRelation]([dtCreated] [datetime] NOT NULL,[uidNode] [uniqueidentifier] NOT NULL,[uidParentNode] [u
..
我正在尝试编写最佳查询来查找所有没有特定字段的文档.有没有比我在下面列出的例子更好的方法呢? //获取所有缺少“location"的文档的idr.db("mydb").table("mytable").filter({location: null},{default: true}).pluck("id")//获取缺少“位置"的所有文档的计数r.db("mydb").table("mytable"
..
来自 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 - 这与传
..
我有这个运行良好的 SQL. 希望我的过滤器返回具有最高 UserSessionSequenceID 的最新唯一 SessionGuid. 问题是性能很差 - 即使我有很好的索引.我该如何重写 - 以省略 ROW_NUMBER 行? SELECT TOP(@resultCount) * FROM(选择[用户会话序列ID],[会话指南],[知识产权],[网址],[网址标题],[站点ID
..
我在有 10,000 条记录的表的 XML 类型列中有这样的 XML 层次结构- 我有一个这样的查询 - 声明@Root VARCHAR(50)声明@Entity VARCHAR(50)声明@ParentNode VARCHAR(50)声明 @Separator VARCHAR(5
..
更新: 我的错...我在这些表上有一个主键...我的意思是目前没有进一步的索引表.我们可能在看到性能后的未来,因为我们对数据有太多过滤器检索数据 上次我们运行数据库时,索引没有显示出太大的改进调整. 我有一个超过数百万条记录的 4 张大表.现在有一个经常调用的存储过程并更新这些表.这是场景 - 现在,如果今天存在条目,我需要为今天更新它,否则如果用户没有条目,我需要继续为用户插入
..
我有一个这样的查询: select * from (从 TableX 中选择 *其中 col1 % 2 = 0) 子查询其中 col1 % 4 = 0 实际的子查询更复杂.当我单独执行子查询时,它可能会快速返回 200 行,但是当我执行整个查询时,等待时间太长. 我知道 sql server 在这里进行了一些优化并将 where 语句合并到子查询中,并生成了效率不高的新执行计划.虽然我可
..
这可能是一个愚蠢的问题,但它可能会阐明联接在内部是如何工作的. 假设我有一个大表 L 和一个小表 S(100K 行 vs. 100 行). 以下两个选项在速度方面会有什么不同吗?: 选项 1: 选项 2:--------- ---------选择 * 选择 *从 L 内部连接 S 从 S 内部连接 LON L.id = S.id;ON L.id = S.id; 请注意,唯一
..
我有一个名为“jobs"的表.对于特定用户,作业可以是活动的、存档的、过期的、待处理的或关闭的.现在每个页面请求都会生成 5 个 COUNT 查询,并且在尝试优化时,我试图将其减少为单个查询.这是我到目前为止所拥有的,但它仅比 5 个单独的查询快.请注意,我简化了每个子查询的条件以使其更易于理解,但是完整查询的行为相同. 有没有办法在不使用低效子查询的情况下在同一个查询中获得这 5 个计数?
..
我如何比较两个查询 X 和 Y 并说 X 比 Y 更好,因为它们在小案例场景中花费的时间几乎相同? 问题是我有两个查询应该在一个非常大的数据库上运行,所以运行和评估不是一个很好的选择.因此,我们创建了一个小型数据库来执行一些测试.评估哪个查询更好是一个问题,因为在我们的测试基础上,它们几乎同时运行(大约 5 分钟).除了返回所需的时间,还有什么方法可以衡量查询的好坏? 解决方案 SE
..
我有一个 MS SQL 查询,它通过远程服务器提取数据.我拉下的数据需要按运行时确定的日期进行过滤.当我像这样运行查询时: SELECT * FROM SERVER.Database.dbo.RemoteViewWHERE EntryDate >'1/1/2009' 然后远程应用过滤器......但是,我实际上不想使用“1/1/2009"作为日期 - 我希望日期由用户定义的函数提供,如下所示:
..
我已阅读 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 创建一个临
..
我正在尝试优化复杂的 SQL 查询,但当我做出看似无关紧要的更改时,却得到了截然不同的结果. 例如,这需要 336 毫秒才能运行: 声明@InstanceID int set @InstanceID=1;将 myResults 设为 (选择Row = Row_Number() 结束(按 sv.LastFirst 排序),联系人ID来自 DirectoryContactsByContact(
..