Для запросов к базе данных у вас есть две небольшие проблемы. Кэш: кэш данных и кэш операторов.
Если вы выполните запрос один раз, оператор будет проанализирован, подготовлен, связан и выполнен. Данные извлекаются из файлов в кеш.
Когда вы выполняете запрос во второй раз, кеш используется, и производительность часто намного, намного лучше.
Какой «реальный» номер исполнения? Первый или второй? Некоторые люди говорят, что «наихудший случай» - это реальное число, и мы должны его оптимизировать. Другие говорят «типичный случай» и запускают запрос дважды, игнорируя первый. Другие говорят «средний» и бегают в 30 раз, усредняя их всех. Другие говорят «типичное среднее», бегите 31 раз, а среднее - последние 30.
Я полагаю, что «последние 30 из 31» являются наиболее значимым числом производительности БД. Не переживайте то, что вы не можете контролировать (анализировать, готовить, связывать) раз. Потте все, что вы можете контролировать - структуры данных, загрузка ввода / вывода, индексы и т. Д.