Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql oracle查询,结果花费了很长时间_Sql_Oracle - Fatal编程技术网

Sql oracle查询,结果花费了很长时间

Sql oracle查询,结果花费了很长时间,sql,oracle,Sql,Oracle,发出命令时 从emp_表中选择* 结果花费了很长时间,并返回0个选定行,如果表中没有行,那么为什么结果花费这么多时间? 请帮忙, 提前感谢。当您发出这样一个没有谓词的查询并询问所有列(*)时,Oracle没有真正的选择,只能扫描分配给表的每个段中的每个块,即使所有块都是空的(例如,由于根据Adimeus的注释删除了记录)。那么“为什么”部分已经回答。原因是高水位线 因此,我将回答“如何”部分。只需截断表格,这将把高水位带到起点,因此,Oracle不必在高水位线下扫描所有内容。emp_表是否有任何

发出命令时

从emp_表中选择*

结果花费了很长时间,并返回0个选定行,如果表中没有行,那么为什么结果花费这么多时间? 请帮忙,
提前感谢。

当您发出这样一个没有谓词的查询并询问所有列(
*
)时,Oracle没有真正的选择,只能扫描分配给表的每个段中的每个块,即使所有块都是空的(例如,由于根据Adimeus的注释删除了记录)。

那么“为什么”部分已经回答。原因是
高水位线


因此,我将回答“如何”部分。只需
截断
表格,这将把高水位带到起点,因此,Oracle不必在高水位线下扫描所有内容。

emp_表是否有任何数据库锁定或在DML语句后未执行提交或回滚?该表是否包含大量行,并且您是否在删除后尝试select命令?你可能会在采访中看到这是一个问题,我不知道他得出了什么样的结论。我只是想知道什么,回答他的正确答案应该是什么。作为将来的参考,你最好直接提到这样的事情,而不是浪费人们的时间来诊断你的问题。只是个主意。“只是截断桌子”可能并不总是个好主意。另一方面,有些人只是接受你的建议而不考虑后果,这可能是他们应得的。。。