![]() |
|
Модераторы: skyboy |
![]()
|
|
| kamre |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
Есть таблица, в ней находится описание набора тестов, создается примерно вот так:
Также имеется две таблицы с результатами для тестов, создаются так:
Тестов довольно много, больше 5000. Нужно сравнить результаты для тестов. Например, делаю вот такой запрос:
Довольно долго работает, похоже, что строит все 5000*5000*5000 вариантов. Так же пытался сделать так:
Работает также долго. Хотя если просто:
то все вполне быстро выдает. Подскажите, почему так получается? Т.е. почему для суммирования и группировки уже полученных данных тратится столько много времени? Как правильно построить запрос? P.S. Почему только для первого блока кода сработала расцветка, хотя везде "[code=sql]" используется? Это сообщение отредактировал(а) kamre - 25.6.2008, 08:59 |
||||||||||
|
|||||||||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 4 Всего: 252 |
Попробуй так:
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
я так вижу, индексов окромя tests.id у тебя нету, так?
|
|||
|
||||
| kamre |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
Синтаксис позволяет, но это нисколько не ускоряет запрос... Кстати, кажется я понял почему у меня такое поведение... Я ж все запросы пока делаю из sqliteman, а он для
выдает только первые 256 записей, остальные только при прокрутке окна. Если создавать таблицу:
то также долго получается.
Сейчас так. Стоит добавить индексы для таблиц с результатами? В них, кстати, id не повторяется сейчас никогда, т.е. для каждого теста только один результат хранится. Как это лучше сделать? |
||||||||||
|
|||||||||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
||||
|
||||
| kamre |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
ну как-то вот так:
Кстати, индекс для tests.id не создавался, для другого поля почему-то был создан. Сейчас создал индексы для id во всех таблицах, стало все очень быстро Всем спасибо за ответы! Это сообщение отредактировал(а) kamre - 25.6.2008, 10:57 |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |