В СУБД запах кода редко встречается в тексте SQL, запах кода в вашей схеме. Показательный пример: поиск некоторого условия в таблице без правильного индекса, который всегда приведет к сканированию таблицы. Чтобы получить последний ID_AdvancedRatePlan для данного ID_Hearing, организуйте таблицу соответствующим образом:
create clustered index cdxARDebitDetail
on ARDebitDetail (ID_Hearing, ID_ARDebitDetail DESC);
Если изменение кластеризованного индекса нежелательно, для различных областей следует предусмотреть закрывающий некластеризованный индекс. Что бы вы ни делали, суть в том, что вы не должны сканировать таблицу каждый раз, это и есть рецепт катастрофы при развертывании.
Тогда вы можете искать, как хотите, и ответ Electric - очень хороший ответ.