Ответы пользователя по тегу SQL
  • Как сделать одним запросом?

    xtender
    @xtender
    group by + rollup?
    Ответ написан
    Комментировать
  • Как правильно составить запрос sql?

    xtender
    @xtender
    just for lulz:
    select grantee
    from dba_role_privs
    group by grantee
    having count(*)=2
       and cast(collect(GRANTED_ROLE) as sys.ku$_vcnt) = sys.ku$_vcnt('CONNECT','RESOURCE')

    чуть поскучнее:
    select grantee
    from dba_role_privs
    group by grantee
    having count(*)=2
       and min(GRANTED_ROLE) ='CONNECT'
       and max(GRANTED_ROLE) ='RESOURCE'
    Ответ написан
    Комментировать
  • Как правильно разбить таблицу на partition в Oracle?

    xtender
    @xtender
    Забавно, а где сами даты? ID_DATETIME - это суррогатный ключ на дату в какой-то другой таблице?
    Принципиально, если в таблице нет самого поля секционирования, а есть только суррогат на другую, то можно делать только refence partitioning, а это требует секционирования мастер-таблицы - docs.oracle.com/cd/E11882_01/server.112/e25523/partition.htm#CACIHDII

    Теперь по вопросам:
    1. Как ее правильно разбить на partition по date, если чаще всего отчеты делаются за текущий месяц?

    Кроме отчетов, наверное, еще что-то происходит? :) в целом, необходим целый ряд исследований и тестирований, прежде чем переходить на секционирование.

    И стоит ли делать допустим такое разбиение partition по году затем в subpartition по месяцам.
    не стоит. Если уж режете по дате, то делайте сразу по месяцам, иначе получите лишний оверхед.

    2. Можно ли создание новой партиции сделать автоматическим согласно критерия деления?
    да, смотрите Interval partitioning - docs.oracle.com/cd/E11882_01/server.112/e25523/partition.htm#CACHFHHF

    3. Если структуру перестроить разбить данную таблицу на две.
    Снова Reference partitioning
    Ответ написан
    Комментировать