Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.10.2005, 19:04
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Есть запрос такого типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Здесь нет ни одного условия, индекс-консультант ничего не посоветовал, что и следовало ожидать. Объем таблицы bgm2 - 70 млн, на выходе запроса получается менее 1 млн записей. Что можно предпринять, для увеличения скорости его выполнения? P.S.:План запроса такой: ( WorkTable ( HashGroupBy ( HashGroupBy ( HashJoin* ( TableScan bgm2 ) ) ) ) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.10.2005, 19:12
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Машина 2xXEON 4Г кэш AWE. Win2003. ASA 9.02.3182 Замечено, что АСА создает еще временный файл asat0000.tmp, который доходит по объему до 10 гиг. Это что же, ему нужен кэш такой? Может ли АСА тратить лишнее время на хранение там промежуточных результатов? Мне кажется 6 часов слишком жирно для такого запроса. P.S.: Кстати, АСА этот файлик не обрезает и не удаляет, даже при перезапуске и перезагрузке АСА его не убивает. Т.е. один раз создался, и всё, пока ручками не прибьешь никуда не денется - не приятно как-то втихаря место на диске утекает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2005, 11:51
|
|||
|---|---|---|---|
|
|||
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
А индекс по полям b+n+dd существует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2005, 11:55
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Именно в такой последовательности? Нет, не существует. Почему же консультант не посоветовал его? Я вот как раз думал строить или нет его. Надо проверить бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2005, 12:05
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Индекс, кстати, может и не помочь, ибо если он будет использоваться только для упорядочивания, а к этому придется еще читать и основную таблицу, то это может оказаться накладнее. А ведь вся таблица в кэше сидит, т.к. видно что сервер использует только процессор, обращений к диску нет вообще. Я перед экспериментами как раз хотел посоветоваться, а имеет ли смысл? Ворочить такую таблицу не быстрое дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2005, 12:32
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
По крайней мере я попробывал создать виртуальный индекс. Как и следовало ожидать ничего кардинального не изменилось. План тот же (и неудивительно когда вся таблица в памяти). Использование индекса оптимизатор отклонил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2005, 14:12
|
|||
|---|---|---|---|
|
|||
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Тогда еще вопрос: Сколько записей возвращает подзапрос Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.10.2005, 22:50
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Промежуточный набор ~60 млн Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.10.2005, 02:38
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Вот именно. Там же полная "материализация представления" , вложенного в запрос. Это -- мертвый запрос, никогда не будет работать (быстро). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.10.2005, 05:34
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
select vv.b,vv.n, sum(q) as sq, regr_slope(q,С - d), regr_intercept(q,C - d) from (select b,n,dd,sum(q) from bgm2 group by b,n,dd) as vv( b,n,d,q) group by vv.b,vv.n; При группировке в selecte могут быть поля перечисленные в group by. Все остальные поля только в фукциях агрегирования (sum,max,...). Я согласен на regr_slope(max(q) ,С - min(d) ), regr_intercept( sum(q) ,C - min(d) ) или что-то в этом роде. А в оригинальном select группировка скорее всего не работает. В Sybase ASE 12.5 при этом даже условие отбора записей where порой отрубается. И все это молча без всякого писка, заметьте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.10.2005, 07:07
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
iLLerЕсть запрос такого типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Здесь нет ни одного условия, индекс-консультант ничего не посоветовал, что и следовало ожидать. Объем таблицы bgm2 - 70 млн, на выходе запроса получается менее 1 млн записей. Что можно предпринять, для увеличения скорости его выполнения? P.S.:План запроса такой: ( WorkTable ( HashGroupBy ( HashGroupBy ( HashJoin* ( TableScan bgm2 ) ) ) ) ) А можно своими словами, что данный запрос должен делать (именно по ТЗ, а не технической реализации) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.10.2005, 13:19
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
to golsa Это и есть две агрегатные OLAP-функции. С группировкой все нормально. ТЗ никто не писал, т.е. формулирую сам для себя: Необходимо получить статистический анализ данных. Необходимо расчитать параметры математических моделей, которые отражали бы ряды q по d для каждой пары (b,n). Проблема в том, что в исходных данных имеется полный реестр (b,n,d,q,...,pk), где b,n,d изначально не уникальны (уникален pk), более того, в любой записи в любой момент может меняться значение n. И держать агрегированый свод (b,n,d,q), где b,n,d уникальны - накладно по производительности и емкости. А запрос тупой по определению, упростил и так до невозможности. Условно говоря вложенный запрос возвращает нам "куб", три измерения и показатель в данной точке. Над этим кубом работают статистические функции, которые одно измерение заменяют, показателями математических моделей. Может и впрямь завести агрегированный свод, вместо вложенного селекта? P.S.: Вот были бы материализованные представления, можно было бы не трахаться с триггерами для поддержки такого свода. А хотя с другой стороны, запрос он и есть запрос, и перерасчет такого представления занимал бы столько же времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.10.2005, 13:25
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
А может быть стоит подумать переписать запрос с использованием GROUP BY CUBE или GROUPING SETS ? Во всяком случае они куб строят по гораздо более эффективным механизмам, чем вложенный аггрегированый подзапрос и аггрегация по нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.10.2005, 13:30
|
|||
|---|---|---|---|
Нужен совет по оптимизации запроса/структуры |
|||
|
#18+
Нее, GROUP BY CUBE и GROUPING SETS здесь не помогут. Они нужны для вычисления итоговых результатов по плоскостям/осям этого куба, а мне эти итоги не нужны. Т.е. они нужны при одновременном использовании нескольких видов группировок, а тут обычная группировка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=55&mobile=1&tid=2013333]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 354ms |

| 0 / 0 |
