powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Ускорение запроса
14 сообщений из 14, страница 1 из 1
Ускорение запроса
    #34900722
Miheev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравсвуйте!
Помогите ускорить запрос:

SELECT Code_Id, AVG(VAL) FROM SensVal WHERE Code_Id in (50287,50284,50452) AND Date_Value >= '2005-01-01 13:00:00' AND Date_Value <= '2005-05-01 13:00:00' AND VAL <> 0 GROUP BY Code_Id

Примечание:
D_VAL = 0 - не должны учитываться, т.к. в моем случае это ошибочные данныев реальности Code_Id более 20 штук
...
Рейтинг: 0 / 0
Ускорение запроса
    #34900782
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты бы индексы то покзал ... как и план запроса
...
Рейтинг: 0 / 0
Ускорение запроса
    #34900843
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если дата не "строка", я бы применил диапазон
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT
 Code_Id,
 AVG(VAL) 
FROM
 SensVal 
WHERE
 Code_Id in ( 50287 , 50284 , 50452 )
  AND
  Date_Value BETWEEN '2005-01-01 13:00:00' AND '2005-05-01 13:00:00'
   AND
   VAL <>  0  
GROUP BY
 Code_Id
А у VAL ноль это часом не NULL?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Ускорение запроса
    #34900860
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Miheev , что выдаст меньше записей?
- Запрос по
Код: plaintext
Code_Id in (*)
- Запрос по
Код: plaintext
Date_Value BETWEEN date1 AND date2
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901257
CJIECAPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если различных значений Code_Id порядка 20, то эффективным будет битмап индекс по этому полю, кроме того если запрос выполняется под каше версии 5.1 или выше, можно создать вычилслимое поле, принимающее значение 1 когда VAL<>0 и 0 в других случаях и также повесить на это новое поле битмап индекс.
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901273
Miheev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VAL <>0, ибо если VAL=0 означает что данные не записались на данную метку времени

Запрос по
Code_Id in (*)


дает в разы меньше записей чем


Запрос по
Date_Value BETWEEN date1 AND date2
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901308
Miheev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а также:

Index CodeDatePK On (CodeId, DateVal) [ Unique ];

Index Date On DateVal;
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901325
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Miheev , индексы-то есть у тебя в таблице SensVal ?

Про ноль почему спрашиваю... Он может не храниться. Т.е. значение нужно проверять как
Код: plaintext
VAL is not NULL
Да и запрос у тебя явно не по кащейскому классу, т.к. есть поля типа Code_Id . Такие в Каше не создаются...

Идея CJIECAPb про вычисляемое поле так же может помочь...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901336
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. отдельно по Code_Id индекса нет? Возможно его создание даст ускорение запросу...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901348
Miheev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CODE_ID не я назвал и не я создавал, спрашивал про этот запрос на другом форуме - ничего не помогло.
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901360
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит не помогло? :)
- Создай индекс по Code_Id
- Создай вычисляемое поле и индекс по нему
Думаю что разница будет.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901372
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Miheevспрашивал про этот запрос на другом форуме
А где еще про Кащей пишут?
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901420
Miheev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я спрашивал на форуме SQL :)
а вот форум Каше

http://tech.groups.yahoo.com/group/cache_ru/messages
...
Рейтинг: 0 / 0
Ускорение запроса
    #34901501
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Miheevа вот форум Каше
http://tech.groups.yahoo.com/group/cache_ru/messages
На эту рассылку я подписан...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Ускорение запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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