21得票4回答
我该如何在Oracle中查看SQL执行计划?

我正在学习数据库索引,想要了解使用它们的效率。 我想查看特定查询是否使用了索引。 我想实际查看使用索引和不使用索引执行查询的差异(因此我想查看我的查询的执行计划)。 我正在使用 SQL+。 如何查看执行计划,并在其中找到告诉我是否使用了我的索引的信息?

20得票5回答
为什么在视图外加WHERE子句会导致性能恶化?

假设你有一个视图:CREATE VIEW dbo.v_SomeJoinedTables AS SELECT a.date, a.Col1, b.Col2, DENSE_RANK() OVER(PARTITION BY a.date, a.Col2 ...

19得票1回答
为什么执行计划中包含一个已持久化的计算列的用户定义函数调用?

我有一个包含两个计算列的表,两个计算列的“是否持久化”都设置为true。但是,在查询中使用它们时,执行计划显示UDF用于计算列作为计划的一部分。由于在添加/更新行时通过UDF计算列数据,为什么计划会将其包含? 如果在查询中包括这些列,则查询非常缓慢(>30s),而当它们被排除时,速度非常快(...

19得票5回答
为什么这是一个索引扫描而不是索引搜索?

这是查询语句:SELECT top 100 a.LocationId, b.SearchQuery, b.SearchRank FROM dbo.Locations a INNER JOIN dbo.LocationCache b ON a.LocationId = ...

19得票6回答
在其他数据库中解释SELECT

我觉得在MySQL中,EXPLAIN SELECT查询非常有用,因为它提供了SQL的执行方法以及分析机会。例如,在实际运行查询和分析统计数据之前,可以分析缺失的索引来提高响应速度。 我的问题是:在类似MS SQL、Firebird和Ingres这样的数据库中,是否有类似的命令可用? 在Fi...

19得票2回答
如何在阅读PostgreSQL查询计划时“更好地思考”?

今天我花了一小时多时间,苦思冥想一个我完全不理解的查询计划。这个查询是一个UPDATE,但根本无法运行,完全死锁: pg_locks显示它没有等待任何事情。现在,我不认为自己是最好或最差的查询计划阅读者,但我发现这个特别难。我想知道如何阅读这些? PostgreSQL专家是否遵循某种方法来确定...

18得票2回答
为什么Oracle在ORDER BY时忽略索引?

我想要获取一个分页结果集的客户信息。我使用的是这个Tom提供的算法: select * from ( select /*+ FIRST_ROWS(20) */ FIRST_NAME, ROW_NUMBER() over (order by FIRST_NAME) RN from CU...

18得票4回答
用于比较SQL Server查询计划的工具?

有没有一种工具可以用来比较(相对复杂的)查询计划?我不是在寻找关于查询计划的指南,而只是一种可以让我快速查看例如不同索引使用情况的工具。 编辑:只是为了明确,我不是在寻找关于计划的信息,而是一种可以快速指出两个计划之间差异的工具(我知道,我可以自己做到,但计划的大小使这很困难)。

17得票5回答
表函数中的条件UNION ALL

因此,使用情况如下 - 根据某些参数,我要从一个表格或另一个表格中选择数据。create table dbo.TEST1 (id int primary key, name nvarchar(128)) create table dbo.TEST2 (id int primary key, n...

17得票2回答
相对于批处理,查询成本为100%。

我不确定如何解释这个问题,但是我在SQL Server 2005中运行的所有查询都有一个"查询成本(相对于批处理)"为100%。是否有办法降低成本?