Oracle order by 查询速度非常慢

发布于 2024-11-25 23:45:50 字数 203 浏览 1 评论 0原文

我在桌子上进行排序时遇到问题。

我的选择查询工作正常,但是当我按顺序排序(即使在主键上)时,它只会继续下去,没有结果。最后我需要终止会话。该表有20K 条记录。 对此有什么建议吗? 查询如下:

SELECT * FROM Users ORDER BY ID;

我不知道查询计划,因为我是 Oracle 新手

I am facing a problem when doing order by on a table.

My select query is working fine, but when i do order by (even on the primary key) it just goes on and on with no results. Finally i need to kill the session. The table has20K records.
Any suggestion for the this?
Query is as:

SELECT * FROM Users ORDER BY ID;

I do not about know about the query plan as i am new to oracle

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

李不 2024-12-02 23:45:51
  1. 对于无序查询,SQL Developer 检索并显示 20K 行,还是仅显示第一个 50 行?您的比较可能不公平。
  2. 这 20K 行的大小是多少: select bytes/1024/1024 MB from user_segments where segment_name = 'USERS'; 我见过很多情况,几兆字节的数据使用了许多千兆字节的存储空间。也许数据之前非常大,有人刚刚删除了它(这不会删除空间)。或者也许有人使用 APPEND 提示一次插入这些行 1,并且每行占用整个块。
  3. 您的查询可能正在等待更多临时表空间进行排序,请查看 DBA_RESUMABLE。
  1. For the unordered query, Is SQL Developer retrieving and displaying 20K rows, or just the fisrt 50? Your comparison might not be fair.
  2. What is the size of those 20K rows: select bytes/1024/1024 MB from user_segments where segment_name = 'USERS'; I've seen many cases where a few megabytes of data use many gigabytes of storage. Maybe the data was very large before and somebody just deleted it (this doesn't remove the space). Or maybe somebody inserted those rows 1 at a time with an APPEND hint, and each row is taking an entire block.
  3. Your query might be waiting for more temp tablespace for sorting, look at DBA_RESUMABLE.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文