Posso richiedere SQL Server cache di un certo set di risultati?

C’è una certa query che viene chiamato da un ASP .Pagina di rete. Ho studiato il piano di esecuzione della query in Management Studio e l ‘ 87% è per un ordinamento. Ho bisogno di male il cernita o ad altro i dati visualizzati non avrebbe senso.

C’è qualche cosa che posso chiedere di SQL Server per memorizzare i risultati ordinati impostato in modo che restituirà i dati più velocemente nel conseguente corre?

O SQL Server è abbastanza intelligente per fare la gestione della cache e sto facendo l’errore di cercare di forzare i risultati della cache, se questo è possibile?

Qualsiasi informazione pertinente sarà altamente apprezzato e grazie mille in anticipo 🙂

AGGIORNAMENTO:
Ho appena letto in un articolo che la creazione di una Vista con un indice cluster si aumentano le prestazioni, in quanto l’indice persistono i dati in una visualizzazione a disco. È vero questo? Come posso ottenere su questa operazione? Tutti gli articoli?

 

4 Replies
  1. 12

    In breve, no: non in SQL server; sarà, naturalmente, caricare i dati in memoria, se possibile, e la cache di piano di esecuzione – così chiamate successive possono essere più veloce, ma non può memorizzare nella cache i risultati.

    Opzioni:

    • sintonia piano; l’ordinamento suoni aggressivi, potrebbe forse utilizzo della denormalizzazione alcuni dati o aggiungere un indice (forse anche un indice cluster); ci possono essere altre cose che possiamo fare con la query se si visualizza il tuning ma senza un DB è guestimation al meglio)
    • cache i risultati al web-server se sia sensato farlo
  2. 12

    Mentre si può creare un vista indicizzata, come si allude al tuo aggiornamento, si deve essere consapevoli che:

    1. Ci sono un sacco di regole da seguire, sia per la creazione, la visualizzazione, e quando l’aggiornamento delle tabelle su cui è basato, e,
    2. Solo perché c’è una (cluster) di indice, che non implica un criterio di ordinamento, si potrebbe ancora utilizzare un ORDINE DA quando l’interrogazione di questo tavolo, e,
    3. A meno che non si sta utilizzando Enterprise edition, è possibile eseguire la query sulla vista con il CON (NOEXPAND) hint per la query
    4. È possibile specificare l’ordine per l’indice specificando ASC e DESC nell’istruzione CREATE INDEX, non CREATE VIEW. Il “trucco” per consentire ORDINE in vista (da specicfying top 100 per cento) non avrebbe alcun effetto.
    • Incredibile! Grazie mille per le informazioni 🙂
  3. 2

    Un’opzione che viene utilizzato a volte per memorizzare i dati ordinati in una tabella secondaria. Questo potrebbe essere ad esempio una tabella temporanea che si crea solo per la sessione, o una tabella cache per l’intero database.

  4. 1

    Di nuovo, SQL server la cache delle query frequenti in memoria. È possibile verificare utilizzando query analyzer e l’esecuzione di una query complessa di un paio di volte, ogni volta che si ottiene più velocemente. Dato permanente la cache potrebbe non essere necessario.

    Se mi consiglia di utilizzare una tabella cache e l’esecuzione di query e inserire i valori in un altro tavolo. È possibile utilizzare una variabile di applicazione o di un’altra tabella sql per determinare quando per aggiornare la cache di nuovo.

    Esempio di query per l’inserimento in tabella cache:

    Inserire In Cache Selezionare il Valore, il Valore dalla Tabella 1 Order by Campo

Lascia un commento