|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2011, 17:34 | #1 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Скорость обработки FB/IB select по boolean и varchar ?
Здравствуйте!
Имеет ли какой-либо смысл в плане скорости исполнения или уменьшения размера выделяемой памяти итп в случаях когда в одной таблице записаны разные группы признаков создавать отдельный признак указывающий на группу1 и группу2? Пример - таблица Поставщики в ней могут быть Юрлица и Физлица, но в программе их нужно показывать раздельно, разделить выборку можно следующими способами: where (ИНН is not null) where (ФИО is null) или добавить в таблицу отдельный boolean признак ЮрЛИЦО и записывать в него да/нет, соответственно при выборке: where (ЮрЛИЦО=True) Вопрос к тем, кто хорошо знает как работает FB/IB - есть ли какая-то существенная разница в этих 3х выборках по скорости, объёму выделяемой памяти, какая-то ещё разница? |
02.10.2011, 17:39 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
02.10.2011, 18:16 | #3 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Можно и так.
Но основной вопрос всё же остаётся - какой метод внутри СУБД обработает одинаковое кол-во записей быстрее? Сравнение по скорости: varchar/integer/smallint is not null varchar/integer/smallint is null boolean=false boolean=true boolean is null тк в разных СУБД бывают разные оптимизации и что быстро в одной СУБД может быть в разы медленнее в другой СУБД... Последний раз редактировалось delphicoding; 02.10.2011 в 18:33. |
02.10.2011, 19:04 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Берешь таблицу записей на 500000 и проверяешь какой способ быстрей. Думаю разницы практичекски не будет в любой СУБД
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
02.10.2011, 19:19 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
02.10.2011, 23:13 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Для Access эта разница для неиндексированных полей почти неощутима - сотые доли секунды при выборке 50000 записей из таблицы в 100000 записей. Примерно такое же влияние оказывает NOT NULL. Наверняка у СУБД есть особенности анализа на NULL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
03.10.2011, 08:26 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
03.10.2011, 12:08 | #8 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Это очевидно.
Хорошо, что разобрались с NULL. Но что с Boolean - ведь в FB нет Boolean! А это INTEGER/SMALLINT с ограничением value in (0,1) - как обрабатывается INTEGER/SMALLINT в контексте =1/=0 ??? Вот тут-то мне и кажется, что быстрее должен быть NULL, чем "псевдо-boolean"... И скорее всего никакие индексы не позволят в FB проверке на "псевдо-boolean" по скорости дойти до проверки на NULL Но я в FB разбираюсь слабо, это только теория, поэтому и интересно было мнение настоящих профи знающих внутреннюю работу FB/IB !!! Последний раз редактировалось delphicoding; 03.10.2011 в 12:12. |
04.10.2011, 09:16 | #9 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
delphicoding, настоящие профи по FB/IB живут на ibase.ru
Вам туда. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В зависимости от выбора в Select изменить значения другого Select | Tayfun | HTML и CSS | 3 | 18.08.2011 00:05 |
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 | mavlon_m | SQL, базы данных | 2 | 17.09.2009 15:28 |
Скорость обработки операций | Alex Cones | Общие вопросы Delphi | 8 | 05.06.2009 20:17 |
Как изменить в InterBase размер поля varchar(10) на varchar(20) | tarakan1983 | БД в Delphi | 4 | 23.03.2009 15:35 |
Передача значения в <select></select> | kkkggg | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 06.09.2007 00:26 |