Oracle
 sql >> база данни >  >> RDS >> Oracle

Оценяване на времето за създаване на индекс в Oracle

Oracle може да оцени времето за създаване на индекс и размера на индекса с EXPLAIN PLAN команда:

Примерна схема

--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);

Резултати

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

Бележки

Действителното време за създаване на моята система беше 2,5 секунди, в сравнение с оценката от 10 секунди. Но това все още е достатъчно добро, ако търсите само приблизителна оценка от порядък. Точността зависи от наличието на точни статистически данни за таблицата, както и от добър системна статистика . (Но бъдете внимателни, преди да съберете системна статистика, това може да повлияе на много планове за изпълнение!) Можете допълнително да си играете с настройките, като промените ръчно sys.aux_stats$ . Това е една от малкото SYS таблици, които е добре да модифицирате, въпреки че все още трябва да внимавате.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql заявка на rownum

  2. Проблеми при инсталиране на Oracle Database Express Edition 11g

  3. Функцията add_months на oracle се различава от Java

  4. InterfaceError:Не може да се получи манипулатор на средата на Oracle; ORACLE_HOME е правилен и SQL*Plus ще се свърже

  5. SQL - Създаване на асоциации между полета (преходна връзка)