индексирование выражений в sql - PullRequest
1 голос
/ 11 ноября 2008

У меня есть база данных, где один из распространенных запросов имеет «где blobCol равен нулю», я думаю, что это приводит к плохой производительности (как при полном сканировании таблицы). У меня нет необходимости индексировать содержимое blobCol.

Какие показатели могли бы улучшить это? Можно ли построить индекс по выражению (blobCol не равен NULL), а не только по столбцу?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2008

Да, большинство СУБД поддерживают его, например, в PostgreSQL это

CREATE INDEX notNullblob ON myTable (blobCol is not NULL);

Кажется, что лучшее, что вы могли бы сделать на SQL Server, - это создать вычисляемый столбец , который, например, будет содержать 1, если BLOB-объект равен нулю, и 0 в противном случае и создать индекс для этого.

1 голос
/ 11 ноября 2008

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

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