Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / В Declare cursor всегда нужно задавать индексы жестко? / 4 сообщений из 4, страница 1 из 1
30.09.2007, 10:44
    #34836810
Eugeny_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Declare cursor всегда нужно задавать индексы жестко?
Во время работы над оптимизацией задачи уже трижды столкнулся с фактом, когда в selecte, объявленном как курсор, ASE не использует индекс. Т.е при выполнении этого selecta отдельно индекс используется, а при открытии курсора нет. И приходится жестко задавать индекс в Declare. У меня закралось подозрение. Это всегда так? Или есть какая-то причина или зависимость? ASE 12.5.3
...
Рейтинг: 0 / 0
30.09.2007, 13:35
    #34836926
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Declare cursor всегда нужно задавать индексы жестко?
Eugeny_M пишет:
А запрос может быть дадите ? и определения таблиц и индексов
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
02.10.2007, 10:41
    #34840044
DimaU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Declare cursor всегда нужно задавать индексы жестко?
Проставить индексы в курсоре

declare Calc cursor for
select p.Dealer,p.InstCmsSaleID,p.Qty,p.Num,p.SecurityID,p.OrderID,p.DealID,p.ID,
p.DealDate,convert(int,p.RevalPosition),convert(int,p.RevalPosInv),
i.MainMember,i.Brief,p.DealType,p.TransactType,s.InstrumentID,
d.InstrumentID,d.Number,s.Brief,p.FixDate,p.Date,i.InstitutionID
from pAccrObject p ,tInstitution i ,tSecurity s ,tDeal d
where SPID = @@spid
and i.InstitutionID = p.InstitutionID
and s.SecurityID = p.SecurityID
and d.DealID = p.DealID
order by TransactType

можно так:

declare Calc cursor for
select p.Dealer,p.InstCmsSaleID,p.Qty,p.Num,p.SecurityID,p.OrderID,p.DealID,p.ID,
p.DealDate,convert(int,p.RevalPosition),convert(int,p.RevalPosInv),
i.MainMember,i.Brief,p.DealType,p.TransactType,s.InstrumentID,
d.InstrumentID,d.Number,s.Brief,p.FixDate,p.Date,i.InstitutionID
from pAccrObject p (INDEX XIE0pAccrObject),tInstitution i (INDEX XPKtInstitution)
, tSecurity s (INDEX XPKtSecurity),tDeal d (INDEX XPKtDeal)
where SPID = @@spid
and i.InstitutionID = p.InstitutionID
and s.SecurityID = p.SecurityID
and d.DealID = p.DealID
order by TransactType

Описание таблиц можно посмотреть в Диасофте 3-5-10, ASE 12-0

Вопрос о том, будет ли быстрее работать, остается открытым.
...
Рейтинг: 0 / 0
02.10.2007, 11:17
    #34840191
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Declare cursor всегда нужно задавать индексы жестко?
DimaU пишет:

> Проставить индексы в курсоре

Мы никогда такого не делали, и все наши курсоры работали
нормально. Правда, я применял курсоры крайне редко.

> Вопрос о том, будет ли быстрее работать, остается открытым.

Так в том-то и дело, что тут двести раз подумать надо сначала,
зачем такое советовать ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / В Declare cursor всегда нужно задавать индексы жестко? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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