среда, 29 августа 2018 г.

sqlplus connection string

sqlplus login/passwd@server:port/sid

Oracle query plan analysis


  1. explain plan
for select...


select plan_table_output from table(dbms_xplan.display(format =>'ALL'))  



  1. autotrace via sqlplus

set autotrace traceonly;

  1. hint gather_plan_statistics
select /*+ GATHER_PLAN_STATISTICS */  /*  xxx001*/

select sql_id, child_number
  from v$sql  
where sql_text like '%xxx001%';

select * from table(dbms_xplan.display_cursor( '50t9x60v9tsk3', 0, 'ALLSTATS LAST'))


пятница, 16 сентября 2016 г.

вторник, 9 августа 2016 г.

как посмотреть топ 10 объектов, которые использую место в тейблсетах ORACLE

SELECT * FROM (
  SELECT
    OWNER, SEGMENT_NAME, BYTES/1024/1024 SIZE_MB, SEGMENT_TYPE
  FROM
    DBA_SEGMENTS
WHERE
      SEGMENT_TYPE = 'TABLE' -- <> 'TABLE'
  ORDER BY
    BYTES/1024/1024  DESC ) WHERE ROWNUM <= 10

четверг, 2 июня 2016 г.

четверг, 4 июня 2015 г.

последовательность выполнения sql запроса

SELECT name, COUNT(*) as cnt
FROM dbo.orderitem
WHERE parentid IS NULL
GROUP BY name 
HAVING COUNT(*) > 1
ORDER BY name

       Этот запрос возвращает наименования заказов количество позиций в которых превышают единицу.
       После запуска запроса SQL иинтерпритатор обрабатывает представленный выше запрос не той последовательности в которой он написан, а в несколько иной:
  1. FROM dbo.orderitem
  2. WHERE parentid is null
  3. GROUP BY name
  4. HAVING COUNT(*) > 1
  5. SELECT name, COUNT(*) as cnt
  6. ORDER BY name