powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Скорость выполнения запроса
7 сообщений из 7, страница 1 из 1
Скорость выполнения запроса
    #39395498
forestry96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вот такой запрос. Выполняется долго от 5 секунд и выше.

Код: sql
1.
2.
3.
4.
SELECT Студенты.Код, ДисцИзучСемСпец.КодСеместра, ДисцИзучСемСпец.КодДисциплины, ДисцИзучСемСпец.КодСпециальности, Студенты.Курс, Студенты.Фамилия, ДисцИзучСемСпец.КодСпециализации
FROM (Студенты INNER JOIN ДисцИзучСемСпец ON Студенты.Специальность = ДисцИзучСемСпец.КодСпециальности) INNER JOIN КонтрДисцИзучКурсСпец ON ДисцИзучСемСпец.КодДисцИзучСеместрСпециальн = КонтрДисцИзучКурсСпец.КодДисцИзучСеместрСпециальн
WHERE (((ДисцИзучСемСпец.КодСеместра)<=[Студенты].[Курс]*2) AND ((Студенты.Курс)<4) AND ((ДисцИзучСемСпец.КодСпециализации)=0) AND ((Студенты.Состояние)<6) AND ((ДисцИзучСемСпец.ГодВвода)=2014)) OR (((ДисцИзучСемСпец.КодСеместра)<=[Студенты].[Курс]*2) AND ((Студенты.Курс)<4) AND ((ДисцИзучСемСпец.КодСпециализации)=[Специализация]) AND ((Студенты.Состояние)<6) AND ((ДисцИзучСемСпец.ГодВвода)=2014))
ORDER BY Студенты.Код, ДисцИзучСемСпец.КодСеместра, ДисцИзучСемСпец.КодДисциплины;



вид запроса в конструкторе


Смыл выборки в том, чтобы к студенту присоединить все предметы его специальности без специализации (значение 0 или пусто). а также предметы специальности с его специализацией.

Формируем список предметов, которые должен сдать студент к текущему его курсу.
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #39395541
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все поля, по которым идет связывание и отбор проиндексированы?
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #39395553
forestry96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

нет не все проиндексированы.
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #39395557
У вас по OR две группы практически одинаковых условий, а надо что бы OR было только для КодСпециализации. В конструкторе в первой строке условий укажите 0 OR [Специализация], а вторую строку удалите.
Для ускорения выполнения запроса желательно:
1. Все поля, участвующие в связи,отборе или сортировке должны быть проиндексированы. Это не относится к флажкам и полям с небольшим набором вариантов значений.
2. В условии отбора первыми должны идти поля, по которым условие отклоняет максимальное кол-во записей.
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #39395558
forestry96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),

Ога, а все просто оказалось.
0 or [Специализация] решило вопрос длительности исполнения запроса.

Спасибо.
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #39395613
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
информация к размышлению:а зачем в таблице студенты поля курс,группа,специальность,специализация (я начинал обучение в 33 группе, а закончил в 53+ курс ежегодно меняется-короче в одной таблице две сущности-это есть не правильно)
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #39395661
forestry96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Я знаю, что это не правильно и многое дублируется.
База досталась из далеких времен 1998 года.
Работаю с тем, что есть. Сам не специалист, переделывать все с нуля по всем правилам долго.
За бесплатно из спецов никто тоже не согласится)).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Скорость выполнения запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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