Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Ước tính thời gian tạo chỉ mục trong oracle

Oracle có thể ước tính thời gian tạo chỉ mục và kích thước chỉ mục bằng EXPLAIN PLAN lệnh:

Lược đồ mẫu

--Create a table with 1 million rows.
drop table table1;
create table table1(a number);
insert into table1 select level from dual connect by level <= 1000000;
--Gather statistics.
begin
    dbms_stats.gather_table_stats(user, 'table1');
end;
/
--Estimate index creation and size.
explain plan for create index table1_idx on table1(a);
select * from table(dbms_xplan.display);

Kết quả

Plan hash value: 290895522

-------------------------------------------------------------------------------------
| Id  | Operation              | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------
|   0 | CREATE INDEX STATEMENT |            |  1000K|  4882K|   683   (2)| 00:00:10 |
|   1 |  INDEX BUILD NON UNIQUE| TABLE1_IDX |       |       |            |          |
|   2 |   SORT CREATE INDEX    |            |  1000K|  4882K|            |          |
|   3 |    TABLE ACCESS FULL   | TABLE1     |  1000K|  4882K|   254   (5)| 00:00:04 |
-------------------------------------------------------------------------------------

Note
-----
   - automatic DOP: skipped because of IO calibrate statistics are missing
   - estimated index size: 24M bytes

Ghi chú

Thời gian tạo thực tế trên hệ thống của tôi là 2,5 giây, so với ước tính là 10 giây. Nhưng điều đó vẫn đủ tốt nếu bạn chỉ tìm kiếm thứ tự ước tính độ lớn. Độ chính xác phụ thuộc vào việc thống kê bảng chính xác cũng như thống kê hệ thống . (Nhưng hãy cẩn thận trước khi bạn thu thập số liệu thống kê của hệ thống, nó có thể ảnh hưởng đến rất nhiều kế hoạch thực thi!) Bạn có thể tìm hiểu thêm các cài đặt bằng cách sửa đổi thủ công sys.aux_stats$ . Đó là một trong số ít bảng SYS có thể sửa đổi, mặc dù bạn vẫn cần phải cẩn thận.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. công cụ nhà phát triển oracle sql - không có dữ liệu sau khi cam kết

  2. Làm thế nào để bắt một lỗi ràng buộc duy nhất trong một khối PL / SQL?

  3. một cách hiệu quả để kiểm tra xem một hàng trong bảng có tồn tại hay không

  4. Sử dụng ký tự đại diện trong bản cập nhật?

  5. Lỗi số nhận dạng không hợp lệ cho v_MONTH trong truy vấn động