powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / selectivity не компилируется
3 сообщений из 3, страница 1 из 1
selectivity не компилируется
    #37482554
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не сталкивался с такой проблемой?
В описании класса селективность явно указана. Компилятор на это указание кладет с прибором. Т.е. при просмотре тюнинха таблицы там пусто и скорость запросов категорически соответствует.
Вообще, как лечить селективность?
...
Рейтинг: 0 / 0
selectivity не компилируется
    #37483125
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, если в структуре хранения есть селективность (обычно после $system.SQL.TuneTable),
то на селективность к описании класса каше плюет. Было обидно, тоже с этим бился, пока не понял.
Сделайте TuneTable, может быть вам селективность посчитает правильно, может быть есть смысл использовать хинты, может быть поправите селективность в хранении (кстати, селективность в хранении не экспортируется вместе с классом, ее надо считать уже на рабочей базе).
...
Рейтинг: 0 / 0
selectivity не компилируется
    #37484722
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov ,

Есть параметр EXTENTSIZE у класса и параметры CALCSELECTIVITY и SELECTIVITY у свойства.
EXTENTSIZE и SELECTIVITY есть и в схеме хранения. Приоритет у схемы хранения, кроме случая CALCSELECTIVITY =0
Класс ведь может быть без исходников (deployed), а параметры нужно как-то менять.
Кроме того SELECTIVITY некоторым свойствам можно поменять только через схему хранения: %%ID (ID), %%CLASSNAME (x__classname)

Сделайте тест:
1) скомпилируйте класс, заполните экстент данными:

Class test.a Extends %Persistent
{

Parameter EXTENTSIZE As INTEGER = 100;

Property f1 As %String(CALCSELECTIVITY = 1, SELECTIVITY = "5%");

ClassMethod Fill()
{
  set ^test.aD=10
  for i=1:1:^test.aD set ^test.aD(i)=$lb("",i)
}
}

Посмотрите в Studio способ хранения и в Портале селективности у полей. Закройте класс в Studio.
2) в Портале настройте таблицу. Сравните теперь результат в студии и портале.
3) повторите эксперимент с самого начала, но предварительно удалив исходники у класса:
do $system.OBJ.MakeClassDeployed("test.a")
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / selectivity не компилируется
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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