Come generare uno script di metadati database necessari per creare un database di sola statistiche in SQL Server 2005 e in SQL Server 2008

Traduzione articoli Traduzione articoli
Identificativo articolo: 914288 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

INTRODUZIONE

Query optimizer in Microsoft SQL Server 2005 o in Microsoft SQL Server 2008 utilizza i seguenti tipi di informazioni per determinare un piano di query ottimale:
  • I metadati di database
  • L'ambiente hardware
  • Lo stato della sessione database
In genere, Ŕ necessario simulare tutti questi stessi tipi di informazioni se si desidera riprodurre il comportamento di query optimizer in un sistema di prova.

Supporto tecnico clienti Microsoft potrebbe essere richiesto per generare uno script dei metadati del database. Microsoft clienti supporto tecnico utilizza questo script dei metadati del database per analizzare un problema di ottimizzazione. In questo articolo viene descritta la procedura per generare lo script di statistiche. Viene inoltre descritto come query optimizer utilizza le informazioni.

Informazioni

Se si utilizza SQL Server 2005, prima di seguire la procedura per generare lo script, assicurarsi che SQL Server Management Studio Ŕ la versione di SQL Server 2005 Service Pack 2 o versione successiva. Se si utilizzano versioni precedenti di SQL Server Management Studio in SQL Server 2005, la creazione guidata script non contiene tutte le necessarie opzioni per la procedura descritta in questo articolo per il corretto funzionamento.

Crea script per l'intero database

Quando si genera un database solo le statistiche clone, potrebbe essere pi¨ semplice e pi¨ affidabile per lo script l'intero database anzichÚ singoli oggetti di script. Quando si creano script per l'intero database, viene visualizzato i seguenti vantaggi:
  • ╚ evitare problemi con gli oggetti dipendenti necessari per riprodurre il problema di mancante.
  • ╚ necessario molto meno passaggi per selezionare gli oggetti necessari.
Nota Se Ŕ generare uno script per un database e i metadati per il database contengono migliaia di oggetti, il processo di script richiede notevoli risorse CPU. Si consiglia di generare lo script durante gli orari. In alternativa, Ŕ possibile utilizzare la seconda opzione per generare lo script per i singoli oggetti.

Per ogni database a cui fa riferimento la query di script, attenersi alla seguente procedura:
  1. Aprire SQL Server Management Studio.
  2. In Esplora oggetti , espandere database e quindi individuare il database che si desidera script.
  3. Fare clic con il pulsante destro del mouse sul database, scegliere attivitÓ e quindi fare clic su Genera script .
  4. Nella configurazione guidata script, verificare che sia selezionato il database corretto. Fare clic per selezionare la casella di controllo script tutti gli oggetti del database selezionato e quindi fare clic su Avanti .
  5. Nella finestra di dialogo Scegli opzioni di script , modificare le impostazioni seguenti rispetto al valore predefinito sul valore indicato nella tabella riportata di seguito.
    Riduci questa tabellaEspandi questa tabella
    Opzione di scriptingValore per selezionare
    riempimento ANSI True
    continuare la Scripting on error True
    Genera script per oggetti dipendenti True
    includere nomi di vincolo di sistema True
    confronto di script True
    Creazione di script di database True
    Login script True
    autorizzazioni di livello oggetto script True
    script statistiche Crea script per statistiche e istogrammi
    Inserisci indici nello script True
    script trigger True
    Nota L'opzione di Account di accesso di script e l'opzione Autorizzazioni di livello oggetto script potrebbe non essere necessarie solo se lo schema contiene oggetti che appartengono a un account di accesso diverso dbo .
  6. Fare clic su Avanti .
  7. Selezionare l'opzione script su file e quindi immettere un nome di file.
  8. Fare clic su Fine .

Oggetti singoli script

╚ possibile solo script singoli oggetti che fa riferimento a una particolare query anzichÚ script completo del database. Tuttavia, a meno che non tutti gli oggetti di database creati con la clausola WITH SCHEMABINDING, le informazioni di dipendenza nella tabella di sistema sys.depends non sempre sono precise. Questa imprecisione pu˛ causare uno dei seguenti problemi:
  • Il processo di script non uno script a un oggetto dipendente.
  • Il processo di script pu˛ creare uno script gli oggetti l'ordine non corretto. Per eseguire correttamente lo script, Ŕ necessario modificare manualmente lo script generato.
Di conseguenza, non Ŕ consigliabile che Ŕ uno script singoli oggetti, a meno che il database include numerosi oggetti e script sarebbe in caso contrario richiedere troppo tempo. Se Ŕ necessario utilizzare singoli oggetti di script, attenersi alla seguente procedura:
  1. In SQL Server Management Studio, espandere database e quindi individuare il database che si desidera script.
  2. Fare clic con il pulsante destro del mouse sul database, scegliere database come script , scegliere CREATE per e quindi fare clic su file .
  3. Immettere un nome di file e quindi fare clic su Salva .

    VerrÓ inseriti nello script il contenitore di database di base. Questo contenitore include file, i gruppi di file, il database e le proprietÓ,
  4. Fare clic con il pulsante destro del mouse sul database, scegliere attivitÓ e quindi fare clic su Genera script .
  5. Verificare che sia selezionato il database corretto e quindi fare clic su Avanti .
  6. Nella finestra di dialogo Scegli opzioni di script , modificare le impostazioni seguenti rispetto al valore predefinito sul valore indicato nella tabella riportata di seguito.
    Riduci questa tabellaEspandi questa tabella
    Opzione di scriptingValore per selezionare
    riempimento ANSI True
    continuare la Scripting on error True
    includere nomi di vincolo di sistema True
    Genera script per oggetti dipendenti True
    confronto di script True
    Login script True
    autorizzazioni di livello oggetto script True
    script statistiche Crea script per statistiche e istogrammi
    script USE DATABASE True
    Inserisci indici nello script True
    script trigger True
    Nota L'opzione di Account di accesso di script e l'opzione Autorizzazioni di livello oggetto script potrebbe non essere necessarie solo se lo schema contiene oggetti che appartengono a un account di accesso diverso dbo .
  7. Nella finestra di dialogo Scegli tipi di oggetto , selezionare tutti i tipi di oggetto database fa riferimento la query problematica.

    Ad esempio, se la query fa riferimento solo a tabelle, selezionare tabelle . Se la query fa riferimento a una visualizzazione, selezionare le viste e tabelle . Se la query problematica utilizza una funzione definita dall'utente, consente di selezionare funzioni .
  8. Dopo aver selezionato tutti i tipi oggetto a cui fa riferimento la query, scegliere Avanti .
  9. VerrÓ visualizzata una la finestra di dialogo ogni tipo di oggetto database selezionato nel passaggio 7. In ciascuna finestra di dialogo, selezionare le specifiche tabelle, viste, funzioni o altri oggetti di database e quindi fare clic su Avanti .
  10. Selezionare l'opzione script su file e quindi specificare lo stesso nome di file immesso nel passaggio 3.
  11. Fare clic su Fine per avviare la creazione di script.
Quando Ŕ terminata la creazione di script, inviare il file di script per il supporto tecnico Microsoft. Il Support Engineer di Microsoft pu˛ inoltre richiedere le seguenti informazioni:
  • La configurazione hardware, incluso il numero di processori e la quantitÓ di memoria fisica esistente
  • Le opzioni SET erano attive durante l'esecuzione della query
Nota Si potrebbero avere giÓ fornito queste informazioni inviando un report SQLDiag o una traccia SQL Profiler. ╚ potrebbe anche utilizzato un altro metodo per fornire queste informazioni.

Come le informazioni vengono utilizzate

Nelle tabelle riportate di seguito consentono di spiegare come query optimizer utilizza queste informazioni per selezionare un piano di query.

Metadati

Riduci questa tabellaEspandi questa tabella
VincoliQuery optimizer utilizza di frequente i vincoli per rilevare contradictions tra query e lo schema sottostante. Ad esempio, se la query include una "WHERE colonna = 5" clausola e un "CHECK (colonna < 5)" esiste del vincolo check, query optimizer sa che righe non corrisponderanno.

Query optimizer rende tipi simili di detrazioni sul supporto di valori null. Ad esempio, Ŕ noto che la clausola "WHERE col IS NULL" essere true o false a seconda dei valori Null della colonna e se la colonna Ŕ della tabella esterna di un outer join. La presenza di vincoli FOREIGN KEY Ŕ utile per determinare la cardinalitÓ e l'ordine di join appropriato. Query optimizer consente le informazioni relative ai vincoli di eliminare il join o semplificare predicati. Queste modifiche Ŕ possono rimuovere il requisito per accedere alle tabelle di base.
StatisticheLe informazioni di statistiche contengono densitÓ e un istogramma che mostra la distribuzione della colonna iniziale della chiave di indice e le statistiche. A seconda della natura del predicato, query optimizer pu˛ utilizzare per stimare la cardinalitÓ di un predicato densitÓ, l'istogramma o entrambi. Aggiornate le statistiche sono necessarie per le stime accurate cardinalitÓ. Le stime di cardinalitÓ vengono utilizzate come input nella stima il costo di un operatore. Di conseguenza, Ŕ necessario disporre le stime di cardinalitÓ buona per ottenere piani di query ottimali.
Tabella dimensioni (numero di righe e le pagine)Query optimizer utilizza l'istogrammi e la densitÓ per calcolare la probabilitÓ che un predicato specificato Ŕ true o false. La stima di cardinalitÓ finale viene calcolata moltiplicando la probabilitÓ per il numero di righe restituite dall'operatore figlio. Il numero di pagine nella tabella o l'indice Ŕ un fattore stima il costo di I/O. Le dimensioni della tabella viene utilizzata per calcolare il costo di un'analisi e risulta utile quando si stimare il numero di pagine che saranno accessibili durante la ricerca di un indice.
Opzioni di databaseDiverse opzioni di database possono influenzare l'ottimizzazione. Le opzioni di AUTO_CREATE_STATISTICS e AUTO_UPDATE_STATISTICS hanno effetto se query optimizer creerÓ nuove statistiche o aggiornamento statistiche non sono aggiornate. Il livello PARAMETERIZATION influenza con parametri query di input prima di query di input viene passata da query optimizer. Parametrizzazione pu˛ influire sulla stima di cardinalitÓ e anche possibile impedire la corrispondenza con le viste indicizzate e altri tipi di ottimizzazioni. L'impostazione di DATE_CORRELATION_OPTIMIZATION fa sý che l'ottimizzatore per la ricerca delle correlazioni tra le colonne. Questa impostazione ha effetto stima cardinalitÓ e costo.

Ambiente

Riduci questa tabellaEspandi questa tabella
Opzioni di sessione SETL' impostazione ha effetto se ANSI_NULLS il "NULL = NULL" espressione restituisce true. Stima di cardinalitÓ per gli outer join pu˛ variare in base l'impostazione corrente. Inoltre, possono modificare anche espressioni ambigue. Ad esempio, il "col = NULL" espressione in modo diverso in base all'impostazione. Tuttavia, il "col IS NULL" espressione restituisce sempre allo stesso modo.
Risorse hardwareIl costo per gli operatori di ordinamento e hash dipende dalla quantitÓ di memoria disponibile per SQL Server relativa. Ad esempio, se la dimensione dei dati Ŕ maggiore di cache, query optimizer riconosce che i dati devono sempre essere spooler su disco. Tuttavia, se la dimensione dei dati Ŕ molto inferiore la cache, l'operazione Ŕ probabile che in memoria. SQL Server considera inoltre diverse ottimizzazioni se il server dispone di pi¨ processori e se parallelismo non Ŕ stata disattivata utilizzando un comando "MAXDOP" o l'opzione di configurazione max degree of parallelism .
SQL Server Stock mantenere (USK) unitÓAlcune funzionalitÓ sono solo attivati in edizioni specifiche di SQL Server 2005 o di SQL Server 2008. Si verifica ad esempio corrispondente di una query di viste indicizzate solo in SQL Server 2005 Enterprise Edition. Analogamente, la corrispondenza con le guide del piano Ŕ limitato a SQL Server 2000 Standard Edition e SQL Server 2005 Enterprise Edition.

ProprietÓ

Identificativo articolo: 914288 - Ultima modifica: martedý 7 aprile 2009 - Revisione: 3.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Chiavi:á
kbmt kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo KB914288 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 914288
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com