ORACLE表加载速度

ORACLE表加载速度,oracle,Oracle,这是一个我以前从未遇到过的新问题 我有一个表,其中一度包含超过100k条记录,它是一个dev环境的事件日志 加载表需要10秒钟(只需单击它即可查看表中的数据) 我删除了除30行以外的所有行,但仍然需要7秒才能加载 我用的是蟾蜍,它给了我一个对话框,上面写着“语句处理…” 有什么想法吗 以下是一些select语句及其所用的时间 select * from log; 21 rows in 10 secs select * from log where id = 120000; 1 row in 1

这是一个我以前从未遇到过的新问题

我有一个表,其中一度包含超过100k条记录,它是一个dev环境的事件日志

加载表需要10秒钟(只需单击它即可查看表中的数据)

我删除了除30行以外的所有行,但仍然需要7秒才能加载

我用的是蟾蜍,它给了我一个对话框,上面写着“语句处理…”

有什么想法吗

以下是一些select语句及其所用的时间

select * from log;  21 rows in 10 secs
select * from log where id = 120000; 1 row in 1 msec
select * from log where user = 35000; 9 rows in 7 sec
id是主键,用户字段上没有索引


我有一个表视图,其中包含该表顶部的所有字段,而且运行速度也很慢。

如果从一个100M记录表开始,我会更好地理解这一点。但为了以防万一,请尝试运行Oracle统计数据。如果这没有帮助,请删除并重新创建该表上的索引。

如果您从一个100M记录表开始,我会更好地理解这一点。但为了以防万一,请尝试运行Oracle统计数据。如果这没有帮助,请删除并重新创建该表上的索引。

如果发出“从事件日志表中选择*”,则使用完整表扫描来扫描整个表。它必须扫描所有分配的段,以查看其中是否有行。如果您的表曾经包含超过100K行,那么它已经分配了至少能够容纳这些100K+行的空间量。请参阅:

现在,如果删除行,空间仍然分配给该表,Oracle仍然需要扫描所有空间。它就像一个高水位线

要降低高水位线,可以发出TRUNCATE TABLE命令,该命令将重置高水位线。但是你会失去所有的行

还有一个选项可以缩小表中的空间。您可以在此处了解它及其先决条件:

问候,
Rob.

如果您发出“从事件日志表中选择*”,则您正在使用完整表扫描扫描整个表。它必须扫描所有分配的段,以查看其中是否有行。如果您的表曾经包含超过100K行,那么它已经分配了至少能够容纳这些100K+行的空间量。请参阅:

现在,如果删除行,空间仍然分配给该表,Oracle仍然需要扫描所有空间。它就像一个高水位线

要降低高水位线,可以发出TRUNCATE TABLE命令,该命令将重置高水位线。但是你会失去所有的行

还有一个选项可以缩小表中的空间。您可以在此处了解它及其先决条件:

问候,


Rob.

你能试试一个简单的
select*from table
看看需要多长时间吗?在我加载表格的过程中,你理解了什么?用我尝试过的一些选项和结果更新了我的问题。@Rene。。。当我点击表格查看数据时。你能尝试一个简单的
select*from table
,看看需要多长时间吗?在我加载表格的过程中,你理解了什么?用我尝试过的一些选择和结果更新了我的问题。@Rene。。。当我点击表格查看数据时,我正在查看统计数据。。。我不确定我到底在看什么,但事实上有些东西是不对的。有几件事很突出。。该表当前有21行。。。统计数据显示行数为12??这有什么吗?@Patrick:可能没什么。统计信息反映上次运行时的行数估计值。如果它仍然显示10万,我会担心。你在这张表上有任何索引吗?是的,我已经删除并重新添加了它们,但没有用。我正在查看统计数据。。。我不确定我到底在看什么,但事实上有些东西是不对的。有几件事很突出。。该表当前有21行。。。统计数据显示行数为12??这有什么吗?@Patrick:可能没什么。统计信息反映上次运行时的行数估计值。如果它仍然显示10万,我会担心。这个表上有索引吗?是的,我删除并重新添加了索引,但没有任何效果。考虑到这是开发环境中的测试数据,简单地截断表不会造成任何损害。。。这个表似乎是收缩的候选表,但它给了我一个无效的表空间或段错误。不过,我没有找到任何关于这个错误的好文档。如果您有任何其他文档可以帮助修复该特定错误,我们将不胜感激。ORA-10635:无效的段或表空间类型。。。行移动是启用的。我只能在缩小空间时再现错误,而不能在截断表时再现错误。当压缩表格时,试图缩小空间时,会出现ORA-10635。你可能想先解压,就是这样!我无意中发现了,但它并没有发出咔嗒声。我没有理由相信该表已经被压缩了,但在某个时间点,它似乎已经被压缩了。考虑到它是开发环境中的测试数据,简单地截断该表不会造成任何损害。。。这个表似乎是收缩的候选表,但它给了我一个无效的表空间或段错误。不过,我没有找到任何关于这个错误的好文档。如果您有任何其他文档可以帮助修复该特定错误,我们将不胜感激。ORA-10635:无效的段或表空间类型。。。行移动是启用的。我只能在缩小空间时再现错误,而不能在截断表时再现错误。当压缩表格时,试图缩小空间时,会出现ORA-10635。你可能想先解压,就是这样!我无意中发现了,但它并没有发出咔嗒声。我没有理由相信桌子已经被压缩了,但在某个时间点,它似乎已经被压缩了。