Intereting Posts

В SQL, как использование DISTINCT влияет на производительность?

Я пытаюсь выбрать отдельный список, в котором дубликаты создаются в нескольких полях. Например,

SELECT tablename.field1Date, tablename.field2Number, tablename.field3Text FROM tablename; 

Выбрали бы дублирование записей по дате, количеству и текстовым полям соответственно.

Теперь, когда я выбираю отдельные записи, чтобы обеспечить то, что я ищу, производительность, кажется, резко уменьшается.

 SELECT DISTINCT tablename.field1Date, tablename.field2Number, tablename.field3Text FROM tablename; 

Есть ли какие-то известные причины для этого? Должен признаться, что я использую MS Access 2003, и это может быть проблемой.

Да, в основном он должен сортировать результаты, а затем повторно обрабатывать, чтобы устранить дубликаты. Эта выборка также может выполняться во время сортировки, но мы можем только предположить, как именно код работает в фоновом режиме. Вы можете попытаться улучшить производительность, создав индекс, состоящий из всех трех (3) полей.

На этой странице приведены советы по повышению производительности запросов, а также информация об использовании анализатора производительности. Он скажет вам, что, если нужны какие-либо индексы.

http://support.microsoft.com/kb/209126

Да, приложение должно сравнивать каждую запись с «отдельным» кэшем записей. Вы можете повысить производительность за счет использования индекса, в частности, в числовом и поле даты.