Если решение "в лоб" будет тормозить, можно попробовать альтернативный вариант:
Заранее выбрать строки (идентификаторы строк), подлежащие раскрашиванию, просто наложив пользовательский фильтр на вспомогательный query. Запомнить выбранные строки либо во временную таблицу, либо во вспомогательную постоянную. Дальше, в случае постоянной таблицы, её можно будет просто приджойнить (outer join) к основной и по факту наличия в ней записи делать необходимую раскраску строк. Временную таблицу, на сколько я помню приджойнить не получится, прийдётся каждый раз делать поиск строки, но всё равно должно быть быстрее чем делать проверку методом inRange.
У всех варинтов есть свои плюсы и минусы, в любом случае нужно тестировать и выбирать
|