SQL Server - indeks na kolumnie obliczanej?

Łączę się z tabelą dziesiątek różnych czasów i za każdym razem dołączam (lub filtruję) na podstawie wyników SUBSTRINGU jednej z kolumn (jest to ciąg, ale wypełniony lewami z zerami, a ja nie). dbać o cztery ostatnie cyfry). W rezultacie, mimo że ta kolumna jest indeksowana, a moje zapytanie używa indeksu, wykonuje skanowanie tabeli, ponieważ samo SUBSTRING nie jest indeksowane, więc SQL Server musi obliczyć go dla każdego wiersza przed dołączeniem.

Szukam pomysłów na przyspieszenie tego procesu. Obecnie na stole znajduje się widok („SELECT * FROM”, aby nadać tabeli przyjazną nazwę) i rozważam dodanie kolumny do obliczanego widoku, a następnie jej indeksowanie. Jestem jednak otwarty na inne sugestie - wszelkie myśli?

WIĘCEJ SZCZEGÓŁÓW: Powinienem był się tym podzielić. Tabela otrzymuje replikację z naszego systemu rozliczeniowego, więc edycja tabeli podstawowej w celu dodania kolumny obliczeniowej nie jest opcją. Każda obliczona kolumna musiałaby zostać dodana do widoku w tabeli. Poza tym wiodące zera nie zawsze prowadzą do zer - czasami są to inne dane, które mnie nie interesują. Przypuszczam, że prawdziwe pytanie brzmi „Jak mogę dołączyć do danych w środku kolumny VARCHAR, korzystając jednocześnie z indeksu? Wyszukiwanie pełnotekstowe?"

Wyjaśnienie mojego przykładu Upraszczam, ale zasadniczo, powiedzmy, że próbuję wyszukać wartości w kolumnie o następujących wartościach:

00000012345MoreStuff
00000012345Whatever
19834212345
Houses12345837443GGD
00000023456MoreStuff

Interesują mnie wiersze, w których SUBSTRING (7,5) = „12345”, więc chciałbym wiersze 1-4, ale nie wiersz 5. Proponuję dodanie kolumny do mojego „SELECT *”, aby zobaczyć, że ma w sobie ten podciąg, a następnie indeksowanie na podstawie tego. Czy to ma większy sens?

questionAnswers(4)

yourAnswerToTheQuestion