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

Топ 5 отнемащи време SQL заявки в Oracle

Открих, че това SQL изявление е полезно място за начало (съжалявам, че не мога да припиша това на оригиналния автор; намерих го някъде в интернет):

SELECT * FROM
(SELECT
    sql_fulltext,
    sql_id,
    elapsed_time,
    child_number,
    disk_reads,
    executions,
    first_load_time,
    last_load_time
FROM    v$sql
ORDER BY elapsed_time DESC)
WHERE ROWNUM < 10
/

Това намира най-добрите SQL изрази, които в момента се съхраняват в SQL кеша, подредени по изминало време. Изявленията ще изчезнат от кеша с течение на времето, така че може да не е добре да се опитвате да диагностицирате снощната групова работа, когато започнете работа в обяд.

Можете също да опитате да подреждате по disk_reads и изпълнения. Изпълненията са полезни, защото някои лоши приложения изпращат един и същ SQL израз твърде много пъти. Този SQL предполага, че използвате правилно променливите за свързване.

След това можете да вземете sql_id и child_number на изявление и ги нахранете в това бебе:-

SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('&sql_id', &child));

Това показва действителния план от SQL кеша и пълния текст на SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. създаване на параметризирани изгледи в oracle11g

  2. Oracle съхранява ли крайни нули за тип данни число?

  3. Функция TO_TIMESTAMP_TZ() в Oracle

  4. Има ли начин да принудим OracleCommand.BindByName да бъде истина по подразбиране за ODP.NET?

  5. Oracle - Как да създадете материализиран изглед с БЪРЗО ОБНОВЯВАНЕ и ПРИСЪЕДИНЕНИЯ