Vorrei chiederti la tua opinione quando si tratta di implementare un modulo di ricerca filtrato. Immaginiamo il seguente caso:
- 1 grande tavolo con molte colonne
- Potrebbe essere importante dire che questo SQL Server
Devi implementare un modulo per cercare i dati in questa tabella e in questo modulo avrai diverse caselle di controllo che ti permetteranno di personalizzare questa ricerca.
Ora la mia domanda qui è quale delle seguenti dovrebbe essere il modo migliore per implementare la ricerca?
Creare una procedura memorizzata con una query all'interno. Questa procedura memorizzata verificherà se i parametri sono forniti dall'applicazione e nel caso in cui non vengano forniti un carattere jolly verrà inserito nella query.
Creare una query dinamica, costruita in base a ciò che viene fornito dall'applicazione.
Lo sto chiedendo perché so che SQL Server crea un piano di esecuzione quando viene creata la procedura memorizzata, al fine di ottimizzarne le prestazioni, tuttavia creando una query dinamica all'interno della procedura memorizzata sacrificheremo l'ottimizzazione ottenuta dal piano di esecuzione?
Per favore, dimmi quale sarebbe l'approccio migliore nella tua opinione.