Come esempio per questa domanda, considera un sistema di gestione dei contenuti che abbia una tabella del database del contenuto che contiene cose come il titolo e l'ubicazione della pagina, nonché il contenuto stesso che potrebbe essere una grande quantità di testo. Esiste una seconda tabella di database con i dettagli delle risorse (come immagini e file) associate a un elemento di contenuto. Ogni pagina nel sistema di gestione dei contenuti può avere uno o più elementi di contenuto, ciascuno con le proprie risorse.
Al momento sto recuperando un elenco di elementi di contenuto e quindi per ogni elemento di contenuto facendo una seconda query per recuperare l'elenco delle risorse correlate. In una pagina con 10 elementi di contenuto, ciò significa 11 query.
Potrei fare un join e recuperare tutto il contenuto e le risorse correlate in una query, ma mi interessa che dove ci sono più risorse per un elemento di contenuto, l'elemento di contenuto sarà duplicato e, poiché l'elemento di contenuto potrebbe essere grande, questo potrebbe essere molto inefficiente con così tanti dati duplicati.
Un'altra opzione è quella di avere una stored procedure che restituisce due recordset. Il primo recordset contiene il contenuto e il secondo recordset contiene le risorse correlate per tutti gli elementi di contenuto nel primo recordset, che viene separato dal server di ricezione.
Quindi la domanda è in generale quale è il modo più efficace per recuperare i dati in questa situazione?
So che il test delle prestazioni è spesso la risposta, ma per questa domanda stavo cercando consigli o alternative di tipo best practice a cui non avrei pensato.