Насколько я понимаю, нули не индексируются в DB2, поэтому предположим, что у нас есть огромная таблица (Sales) со столбцом даты (sold_on), который обычно является датой, но иногда (10% времени) является нулевым. 1001 *
Кроме того, давайте предположим, что это устаревшее приложение, которое мы не можем изменить, поэтому эти нули остаются там и что-то значат (скажем, продажи, которые были возвращены).
Мы можем быстро выполнить следующий запрос, поместив индекс в столбцы sold_on и total
Select * from Sales
where
Sales.sold_on between date1 and date2
and Sales.total = 9.99
Но индекс не сделает этот запрос быстрее:
Select * from Sales
where
Sales.sold_on is null
and Sales.total = 9.99
Поскольку индексация выполняется для значения.
Можно ли индексировать нули? Может быть, путем изменения типа индекса? Индексирование столбца индикатора?