Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Оптимизация запроса/таблиц / 18 сообщений из 18, страница 1 из 1
03.02.2009, 07:09
    #35792805
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Здравствуйте, коллеги!
Имеется следующая проблема: существует CSP, которая выбирает данные из одной таблицы при помощи DSQL-запроса со множеством условий и отображает в браузере. Таблица не сильно большая ~40тыс записей. Однако выборка при этом идет очень медленно: примерно 9-15(!) секунд даже если возвращается 0 записей. Сколько бы я не упрощал запрос, результата это не дает, так что, скорее всего, проблема в хранении данных в самом Cache. Вопрос: как повысить производительность запроса? Есть ли какие-нибудь материалы по поводу оптимизации Cache?
З.Ы. Cache версия 5.0.
...
Рейтинг: 0 / 0
03.02.2009, 07:11
    #35792808
=Dimon=
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
MasteRus,

А что за данные, что за запрос?
Пробовали использовать индексы?
...
Рейтинг: 0 / 0
03.02.2009, 07:46
    #35792820
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Таблица - 12 полей: несколько текстовых полей, несколько экземпляров других классов, один экземпляр встраемого класса, дата. Индексы проставлены на одно поле встраемого класса класса и на дате. Запрос собирается динамически, в зависимости от условий, которые выбирает пользователь (тип сортировки, период по дате, поиск некоторых значений в полях и т.д.)
...
Рейтинг: 0 / 0
03.02.2009, 08:37
    #35792854
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
MasteRusвыбирает пользователь ( тип сортировки ...)
Возможно все дело в этом...

Как вариант приведите примеры "самых долгих" запросов...
...
Рейтинг: 0 / 0
03.02.2009, 08:54
    #35792881
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
krvsaMasteRusвыбирает пользователь ( тип сортировки ...)
Возможно все дело в этом...

Как вариант приведите примеры "самых долгих" запросов...
Нет, не в этом дело. Дело в том, что и на запрос типа Select ID, TextField1 from TableName
и на сложный запрос с 8 полями и кучей условий все равно тратится одно и тоже время (без учета вывода, конечно же) 9-15 секунд+время на отображение браузером. Я все-таки склонен к тому, что на это влияет какие-то особенности хранения данных в Cache.
...
Рейтинг: 0 / 0
03.02.2009, 08:59
    #35792888
logist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Привет.

> Select ID,
> TextField1 from TableName

Именно таки на этот запрос по таблице в 40 тыс записей 9 секунд? Вы использовали
какую-то свою схему хранения?

Памяти под буфера Каше сколько выделено?

=Сергей Шутов
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
03.02.2009, 09:09
    #35792900
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Че-то запредельные какие-то цифры, 9 секунд на 40тыс записей очень много при любом раскладе, даже без индексов и на слабой машине.

У вас где-то там внутри неслабое извращение типа вычисляемого поля по подтаблице или что-нибудь в этом роде.

Я прямо даже не знаю, что еще может быть, слабый диск, плохие индексы или схема хранения. Но такую таблицу каше тупо поднимет в память и отсортирует без всяких индексов
...
Рейтинг: 0 / 0
03.02.2009, 10:27
    #35793043
AlexKB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Блок А.Н.,

Чтобы утверждать, что именно время выполнения запроса велико, необходимо проверить тот же запрос в терминале SQL, или в отдельной программе, там легко промониторить время начала и время окончания запроса. Может Вам добавляет время организация вывода данных на страницу?
...
Рейтинг: 0 / 0
03.02.2009, 10:32
    #35793063
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
AlexKB, проблема не у меня :-)

Кстати да, у HTMLя есть проблемы с выводом больших таблиц, там надо серьезно подходить к стилям, формаитированию и т.д. Если теги не закрыты какие или неверная разметка вообще - то ИЕ покажет нормально, но будет долго думать.

Также для больших таблиц очень желательно расставлять ширину столбцов в заголовке, иначе при выводе каждой строки оно будет пытаться пересчитать это заново.

Но типикстартер говорит "без учета вывода", и я верю (зря?)
...
Рейтинг: 0 / 0
03.02.2009, 10:55
    #35793162
AlexKB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Блок А.Н.,
Извиняюсь, стрелка перевелась.

Я хотел сказать, что поскольку DSQL, то может дело в разборе ResultSet, туда ведь можно такого наворотить.

На месте автора я бы задавал вопрос так, если бы у меня были сомнения в способе хранения:
--я попробовал выполнить простой запрос в терминале SQL - время ***
--я попробовал выполнить тот же запрос в программе средствами DSQL - время ***
--я попробовал выполнить тот же запрос в программе средствами ESQL - время ***
Отсюда уменя вывод ************************

Да извинит меня Автор.
...
Рейтинг: 0 / 0
03.02.2009, 11:06
    #35793197
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
logist
> Select ID,
> TextField1 from TableName

Именно таки на этот запрос по таблице в 40 тыс записей 9 секунд? Вы использовали
какую-то свою схему хранения?

Это через CSP с помощью DSQL-запроса. Через SQL-manager 6,5 сек. Что имеется ввиду под схемой хранения?
logist
Памяти под буфера Каше сколько выделено?

Память для кэша базы данных = 16мб
Память для кэша программы = 8мб
Память для 2кб кэша = 0
Память для 8кб кэша = 16

Блок А.Н.
Кстати да, у HTMLя есть проблемы с выводом больших таблиц, там надо серьезно подходить к стилям, формаитированию и т.д. Если теги не закрыты какие или неверная разметка вообще - то ИЕ покажет нормально, но будет долго думать.

Нет, теги все закрыты. Возможно проблема в обработке ResultSet?
...
Рейтинг: 0 / 0
03.02.2009, 12:38
    #35793503
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Памяти для кэша данных слишком мало, поставьте хотя бы пару сотен мегабайт для начала

Возможно больше ничего и не понадобится.
...
Рейтинг: 0 / 0
03.02.2009, 16:32
    #35794380
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
MasteRusЗдравствуйте, коллеги!
Имеется следующая проблема: существует CSP, которая выбирает данные из одной таблицы при помощи DSQL-запроса со множеством условий и отображает в браузере. Таблица не сильно большая ~40тыс записей. Однако выборка при этом идет очень медленно: примерно 9-15(!) секунд даже если возвращается 0 записей. Сколько бы я не упрощал запрос, результата это не дает, так что, скорее всего, проблема в хранении данных в самом Cache. Вопрос: как повысить производительность запроса? Есть ли какие-нибудь материалы по поводу оптимизации Cache?
З.Ы. Cache версия 5.0.

А что выдает команда W $ZV в терминале?
У Вас однопользовательская версия или многопользовательская?

Почему Вы используете такую старую версию Cache'?

Вадим
...
Рейтинг: 0 / 0
04.02.2009, 05:35
    #35795296
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Блок А.Н.Памяти для кэша данных слишком мало, поставьте хотя бы пару сотен мегабайт для начала. Возможно больше ничего и не понадобится.
Да, спасибо, вы оказались правы: кроме увеличения размеров памяти больше ничего и не понадобилось! Ещё раз Спасибо!
...
Рейтинг: 0 / 0
04.02.2009, 08:33
    #35795365
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
MasteRus , т.е. все ускорилось?
...
Рейтинг: 0 / 0
04.02.2009, 08:49
    #35795379
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Да, теперь первый запрос после запуска выполняется долго, зато все последующие выполняются практически моментально... обидно, что сам не догадался попробовать.
Кстати, возник вопрос: в Cache кэш БД делиться на 2 вида(на 2к и на 8к). Какой из них за что отвечает и как влияет на производительность?
...
Рейтинг: 0 / 0
04.02.2009, 10:40
    #35795610
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
Все-таки странновато, что даже первый запрос выполняется долго (ели это те же 9 секунд).

Насчет кеша 2 и 8 кб, вроде базы бывают с 2х и 8ми кб блоками (это можно посмотреть в свойствах базы), для них раздельные кэши. 2 кб блоки используются только для совместимости, даже каше 4(старее не использовал) уже использует 8 кб.

Так что смело ставьте кэш 2к=0.
...
Рейтинг: 0 / 0
04.02.2009, 12:28
    #35795970
MasteRus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса/таблиц
На мой взгляд, вполне логично - при первом запросе данные заносятся в оперативку, следующие запросы потом уже из неё черпают данные. Но это уже не критично, сервак нечасто перезагружаем.
И ещё раз спасибо за краткий ликбез!
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Оптимизация запроса/таблиц / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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