Показать сообщение отдельно
Старый 15.12.2011, 01:02   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Спасибо.
Очень ценная инфа.

Получается что вложенный цикл быстрее раз так в 140 для времянок.
где-то попадалась инфа что ISAM движок, который использован во времянках всегда последовательно перебирает записи, из-за чего бывает медленный и неэффективный. Видимо в джоинах это как раз проявилось.

1. Попробовал закомментировать код который забивает абракадаброй строки времянки (кроме ключевого поля). Для вложеных циклов время не изменилось. Для джоина - улучшилось с 7,59 до 4,55 секунд. Т.е. похоже джоин идет по схеме nested loop, а подзапрос в нестед лупе делает сканирование приждойненной таблички без использования индекса. Отсюда же понятно почему квадратичная зависимость. Если бы джоинили 3 таблички то была бы кубическая зависимость времени. Прикольно

2. Попробовал добавить индекс только по полю AccountNum. Потом отдельно по паре полей AccountNum, RecID - никакого положительного эффекта, только время заполнения таблицы увеличилось.

Последний раз редактировалось Logger; 15.12.2011 в 01:11.