Конференция "Базы" » Оптимизировать запрос [FB 2.0]
 
  • Дмитрий Белькевич (07.06.10 19:43) [0]
    Делаю ХП, можно ли как-то переписать более оптимально часть процедуры:


     if (exists(select STUDY_UID
                from STUDIES
                where STUDY_UID = :STUDY_UID and
                      STUDIES.STUDY_FILES_COUNTER = 0)) then
       delete from STUDIES
       where STUDY_UID = :STUDY_UID;



    Процедура должна удалять запись с ключом STUDY_UID, если поле STUDY_FILES_COUNTER равно нулю.
  • Виталий Панасенко(дом) (07.06.10 19:49) [1]
    а for отменили?
  • b z (07.06.10 20:47) [2]
    А просто
    delete from STUDIES
    where STUDY_UID = :STUDY_UID and
            STUDY_FILES_COUNTER = 0;


    не работает?
  • Дмитрий Белькевич (07.06.10 20:59) [3]
    Угу, уже [2] сам сделал. Что-то ступил сразу. Спасибо за обсуждение.
  • Кщд © (08.06.10 08:37) [4]
    так
    if (exists(select STUDY_UID
               from STUDIES
               where STUDY_UID = :STUDY_UID and
                     STUDIES.STUDY_FILES_COUNTER = 0)) then
      delete from STUDIES
      where STUDY_UID = :STUDY_UID;


    в общем случае не эквивалентно:

    delete from STUDIES
    where STUDY_UID = :STUDY_UID and
           STUDY_FILES_COUNTER = 0;


    если, конечно, STUDY_UID не PK, о чем ни слова)
  • Дмитрий Белькевич (10.06.10 12:04) [5]
    >если, конечно, STUDY_UID не PK, о чем ни слова)

    >>запись с ключом STUDY_UID
  • Кщд © (11.06.10 10:06) [6]
    Дмитрий Белькевич   (10.06.10 12:04) [5]
    ключ ключу рознь
    UQ и PK - несколько разные вещи, не так ли?
  • Дмитрий Белькевич (13.06.10 00:44) [7]
    Знаю pk, знаю fk, uq не знаю.
  • turbouser © (13.06.10 01:28) [8]
    UQ - уникальный индекс, PK - первичный ключ
    в данном случае нет разницы. FB автоматом создает индекс для PK
  • Дмитрий Белькевич (13.06.10 01:49) [9]

    > в данном случае нет разницы. FB автоматом создает индекс
    > для PK


    Я уж испугался, что в фб какой-то новый тип ключей появился :)
  • Petr V. Abramov © (15.06.10 15:53) [10]

    > turbouser ©   (13.06.10 01:28) [8]

    вроде бы как uq допускает null`ы, а pk - нет. хотя как в fb сделано - не помню.
  • turbouser © (15.06.10 17:22) [11]

    > Petr V. Abramov ©   (15.06.10 15:53) [10]

    я и не говорю, что uq и pk одно и то же :)
 
Конференция "Базы" » Оптимизировать запрос [FB 2.0]
Есть новые Нет новых   [134433   +22][b:0][p:0.001]