Vorrei chiederti, la tua opinione quando si tratta di implementare un modulo di ricerca filtrato. Immaginiamo il seguente caso:
- 1 grande tabella 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 dei seguenti deve essere il modo migliore per implementare la ricerca?
-
Crea una stored procedure con una query all'interno. Questa stored procedure controllerà se i parametri sono forniti dall'applicazione e nel caso in cui non viene fornito un carattere jolly verrà inserito nella query.
-
Crea una query dinamica, che viene 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 ottimizzare le sue prestazioni, tuttavia creando una query dinamica all'interno della stored procedure si sacrifica l'ottimizzazione ottenuta dal piano di esecuzione?
Per favore dimmi quale sarebbe l'approccio migliore nella tua opinione.