Запрос к базе данных по неплотному индексу - PullRequest
1 голос
/ 14 апреля 2011

Мне трудно понять, что задает этот вопрос:

При наличии неплотного индекса для атрибута SALARY таблицы EMPLOYEE возможно ли это ответить на запрос

SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000

без выполнения линейного сканирования файла? Если нет, как вы можете пересмотреть неплотный индекс, чтобы обеспечить более эффективный процесс?

Я понимаю, что ищет запрос, но я не совсем понимаю, каковы свойства неплотного индекса, которые относятся к выполнению запросов. Поскольку существуют значения для заработной платы, которые сотрудники не обязательно будут иметь, то это означает, что индекс не является плотным? * * 1010

Если это так, я не понимаю, как мне разрешено изменять индекс, чтобы сделать запрос более эффективным.

1 Ответ

3 голосов
/ 14 апреля 2011

Неплотный индекс имеет:

  • Одна запись для каждого блока
  • Одна запись для каждого отдельного значения

Плотный индекс имеет:

* * 1010 Одна запись в индексе для каждой записи

Неплотный индекс зарплаты содержит запись для каждого отдельного значения заработной платы, но не для каждой записи. Таким образом, индекс не содержит достаточно информации для выполнения COUNT (*) без возврата к линейному сканированию файла данных.

Если индекс зарплаты был плотным, вы могли бы выполнить

SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000

без линейного сканирования файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...