Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли проиндексировать поле в представлении? [D7, FireBird 1.5.4]


pavel_guzhanov ©   (2009-01-19 08:41:00) 

В базе создается view, у которого есть ключевое поле, значение этого поля составное, например '10НПО3582', где 10 - берется из одной таблицы, 'НПО' - обязательно в каждой записи, 3582 - берется из другой таблицы. Если при поиске критерием является именно это поле, то поиск работает медленно при большом количестве записей. Можно ли по такому полю сделать индекс, и, если можно, то как?


Виталий Панасенко   (2009-01-21 14:44:00) [1]

Может, меня не правильно поняли. Вычисляемые индексы есть и в ЖарПтице.. я о другом:
> pavel_guzhanov ©   (19.01.09 08:41)  


>например '10НПО3582',  где 10 - берется из одной таблицы, 'НПО' - обязательно в
> каждой записи, 3582 - берется из другой таблицы


Petr V. Abramov   (2009-01-21 09:40:00) [2]

в оракле есть индексы по выражению.
автору: [2]


sniknik   (2009-01-19 18:10:00) [3]

> какая-нибудь СУБД это умеет делать?
mssql.
правда не все вьюшки подходят, есть ряд условий которым они должны соответствовать, ну и создаваться они должны по особому, там прописываешь что то чтобы создавалась схема вьюшки.

еще наверное foxpro, там со времен доса можно было индексы по выражениям строить не то что по вычисляемому во вьюхе полю. в современном наверняка развито больше, ну или, если хотя бы также осталось значит осталось возможным.

+ клипер, аналогично фоксу. хотя не знаю считать его за СУБД или нет? и вообще не "умер" ли он уже?

+ наверняка оракл... не, тут я не знаю, только догадки, но думаю они не дадут себя обойти конкуренту в любом вопросе... попытаются. а т.к. у mssql-я есть, то и они привинтят, даже если не было.

ну и наверняка еще у кого нибудь есть.


Виталий Панасенко(дом)   (2009-01-19 17:07:00) [4]

А вообще, интересно - какая-нибудь СУБД это умеет делать? Не слышал....


Sergey13   (2009-01-19 13:05:00) [5]

> [5] Виталий Панасенко(дом)   (19.01.09 12:25)

Я так же понял. И не вижу смысла склеивать их во вьюхе. Это самая работа для клиента. На сервере - это данные из разных таблиц, так что резать на сервере еще нечего, они и так там "обрубками" валяются. 8-)


Виталий Панасенко(дом)   (2009-01-19 12:25:00) [6]

я так понял, клиент их видит склеенными и вводит склеенными.. но что мешает для выборки их "разрезать"?


Sergey13   (2009-01-19 10:29:00) [7]

> [2] Виталий Панасенко   (19.01.09 09:17)
> раздели на клиенте на составные..

ИМХО их на клиенте как раз склеивать надо, а не разделять.


Виталий Панасенко   (2009-01-19 09:27:00) [8]

и, соответственно, включи их(эти поля) в WHERE


Виталий Панасенко   (2009-01-19 09:17:00) [9]

раздели на клиенте на составные.. и включи эти поля в вюху.. возможно, заработает быстрее


Сергей М.   (2009-01-19 09:00:00) [10]

Нельзя.


Наверх

Титульная страница Поиск, карта сайта Написать письмо