Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y / 4 сообщений из 4, страница 1 из 1
06.05.2007, 19:14
    #34507948
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
В Cache' 5.2.x и Ensemble 4.0.y можно строить индекс по коллекции, который ускорит выполнение SQL-запросов.

Вот пример:

Есть класс

Код: plaintext
1.
2.
3.
4.
5.
6.
Class Test.CollectionTest Extends (%Persistent, %Populate, %XML.Adaptor) 
{ 
Property Pets As array Of %String; 
Property Name As %String; 
Index PetsIndex On(Pets(ELEMENTS),Pets(KEYS)); 
}

Теперь делаем SQL-запрос:
Код: plaintext
select * from Test.CollectionTest_Pets where Pets like 'A%'

И смотрим план запроса:

План запроса
Отосительная стоимость = 41587
* Call module B, which populates temp-file A.
* Read temp-file A, looping on ID.
* For each row:
Read master map Test.CollectionTest_Pets.IDKEY, using the given idkey value.
Output the row.
module B
* Read index map Test.CollectionTest_Pets.PetsIndex, looping on %SQLUPPER(Pets) (with a %STARTSWITH range condition), element_key, and CollectionTest.
* For each row:

Add a row to temp-file A, subscripted by ID, with no node data.

Любителям коллекций может пригодиться.

Вадим
...
Рейтинг: 0 / 0
06.05.2007, 20:07
    #34507994
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
Пример, который я прислал, - это случай, когда коллекция проецируется, как подтаблица.
Если коллекция не проецируется, как таблица, то есть FOR SOME %ELEMENT Predicate

Пример из SAMPLES

Код: plaintext
1.
2.
SELECT Name,FavoriteColors
FROM Sample.Person
WHERE FOR SOME %ELEMENT(FavoriteColors) (%VALUE='Red')

Вадим
...
Рейтинг: 0 / 0
07.05.2007, 08:14
    #34508410
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
Зачем вообще использовать эти "коллекции"?
Насколько я помню и раньше часто встречались вопросы типа:
- Вот у меня есть коллекция... Теперь я столкнулся с проблемой "блаблабла"... Что мне теперь делать? :(
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
07.05.2007, 11:01
    #34508850
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y
VadimFВ Cache' 5.2.x и Ensemble 4.0.y можно строить индекс по коллекции, который ускорит выполнение SQL-запросов.
Индексировать коллекции и списки можно было и раньше. Индексы в самом деле строились и поддерживались, но SQL запросы их почему-то никак не могли использовать. За второй шаг - отдельный респект разработчикам. Доделали, значит.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Индекс по коллекции в Cache' 5.2.x и Ensemble 4.0.y / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]