Bounds или Condition, будет ли разница?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Alexander
Местный житель
Сообщения: 248
Зарегистрирован: 28 ноя 2006, 13:29

Bounds или Condition, будет ли разница?

Сообщение Alexander »

Пусть Имеем View

Код: Выделить всё

view test
select * from sometable where((...))
Bounds b1
   1 == somefield (noindex)
Condition c1
   somefield = 1
;
Какими будут ли различия в работе и скорости View??
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

а попробовать самому слабо? И поделится с народом?
в теории никаких. Разнцица будет в том, что по condition накладывается условие аналогичное жесткой подцепке и действует оно на все таблицы во view. Из-за этого bounds мне больше нравиться.
Alexander
Местный житель
Сообщения: 248
Зарегистрирован: 28 ноя 2006, 13:29

Сообщение Alexander »

Однако у меня была ситуация

Код: Выделить всё

view test 
select * from sometable where((
   ...
   and 1 == somefield (noindex) 
   ...
)) 
;
заменил на

Код: Выделить всё

view test 
select * from sometable where((
   ...
)) and = somefield = 1
;
Результат: Во Втором варианте запрос отрабатывал раза в полтора быстрее. Хотя, были и другие задачи, где скорость заметно не изменялась(или вообще не менялась, не мерял, а на вскидку не видно). Поэтому и возник вопрос.... скорее всего, как вы сказали, из-за того, что подцепки сменились на жесткие, поэтому и скорость выше....
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Очень странный результат.
Разница принципиальная: bounds по возможности обрабатываются сервером БД, condition - клиентом. Использование bounds уменьшает объём данных, пересылаемых сервером клиенту (по сравнению с аналогичным condition).
Виталий
Ответить