Al momento sei offline in attesa che la connessione Internet venga ristabilita

FIX: Query potrebbe richiedere più tempo per terminare in SQL Server 2005, se la query utilizza un inner join join per una tabella derivata che utilizza la parola chiave DISTINCT

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: 949854
Bug #: 50002496 (SQL Hotfix)
Microsoft distribuisce le correzioni di Microsoft SQL Server 2005 come un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli aggiornamenti rapidi e tutte le correzioni protezione rilasciate con SQL Server 2005 precedente versione di correzione.
Sintomi
Si consideri lo scenario seguente. È una query che utilizza un inner join. Una delle tabelle incluso in un inner join è una tabella derivata. La tabella derivata utilizza la parola chiave DISTINCT . Si esegue la query. In questo scenario è potrebbe che la query richiedere più tempo per completare in Microsoft SQL Server 2005 più in SQL Server 2000.

Nota Una tabella derivata è un'istruzione SELECT dopo la clausola FROM di una query.
Cause
Questo problema si verifica perché query optimizer genera un piano di esecuzione non valido. In SQL Server 2005, query optimizer sceglie un piano di esecuzione che contiene il Top(TOP EXPRESSION:((1))) operator for the DISTINCT keyword. Tuttavia, in SQL Server 2000, il piano di esecuzione per la stessa query utilizza l'operatore di aggregazione HASH MATCH per la parola chiave DISTINCT parola chiave.

Quando la query optimizer ottimizza una query in SQL Server 2005, query optimizer utilizza il Top(TOP EXPRESSION:((1))) operator for the DISTINCT keyword to obtain the first row quickly. Tuttavia, se la stima di cardinalità delle righe per ogni operazione del Top(TOP EXPRESSION:((1))) operator is larger than the actual cardinality, SQL Server 2005 will take a long time to obtain the first row. Di conseguenza, la query richiede molto tempo per terminare.
Risoluzione
La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 7. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2005 Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
949095Pacchetto di aggiornamento cumulativo 7 per SQL Server 2005 Service Pack 2
Nota Poiché le generazioni sono cumulative, ogni nuova versione di correzione contiene tutti gli aggiornamenti rapidi e tutte le correzioni protezione rilasciate con SQL Server 2005 precedente versione di correzione. Microsoft consiglia di considerare applicare la correzione rapida per la versione più recente che contiene questo aggiornamento rapido (hotfix). Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
937137Versioni di SQL Server 2005 rilasciate dopo il rilascio di SQL Server 2005 Service Pack 2
Gli hotfix di Microsoft SQL Server 2005 vengono creati per service pack specifici di SQL Server. È necessario applicare un hotfix di SQL Server 2005 Service Pack 2 a un'installazione di SQL Server 2005 Service Pack 2. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel successivo service pack SQL Server.

Come attivare questo aggiornamento rapido (hotfix)

Dopo l'installazione di aggiornamento cumulativo 7 per SQL Server 2005 Service Pack 2, è necessario attivare il flag di traccia 4125. A tale scopo, eseguire la seguente istruzione in SQL Server Management Studio.
DBCC TRACEON(4125,-1)
Status
Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".
Informazioni
Per ulteriori informazioni su quali file vengono modificati e per informazioni sui prerequisiti richiesti per applicare il pacchetto di aggiornamento cumulativo contenente l'hotfix descritto in questo articolo della Microsoft Knowledge Base, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
949095Pacchetto di aggiornamento cumulativo 7 per SQL Server 2005 Service Pack 2

Informazioni importanti per SQL Server 2005 Analysis Services

Esiste un problema noto in aggiornamento cumulativo 7 per SQL Server 2005 Analysis Services. Si consideri lo scenario seguente. Si installa aggiornamento cumulativo 7 per SQL Server 2005 SP2. In SQL Server Profiler, è possibile avviare una traccia o interrompere una traccia. Quindi si esegue una query. Il tempo di esecuzione della query supera il valore dell'impostazione del server ForceCommitTimeout. In questo scenario, vengono annullate tutte le query sono in esecuzione sul server. Per risolvere questo problema, non eseguire le query MDX prima di avviare una traccia o interrompere una traccia.
Riferimenti
Per ulteriori informazioni sull'elenco delle generazioni disponibili dopo SQL Server Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
937137Versioni di SQL Server 2005 rilasciate dopo il rilascio di SQL Server 2005 Service Pack 2
Per ulteriori informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
935897Un modello di manutenzione incrementale è disponibile dal team di SQL Server per fornire aggiornamenti rapidi per i problemi segnalati
Per ulteriori informazioni su come ottenere SQL Server 2005 Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
913089Come ottenere il service pack più recente per SQL Server 2005
Per ulteriori informazioni sulle nuove funzionalità e i miglioramenti apportati a SQL Server 2005 Service Pack 2, visitare il sito di Web di Microsoft:Per ulteriori informazioni sullo schema di denominazione degli aggiornamenti di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
822499Nuovo schema di denominazione per i pacchetti di aggiornamento software di Microsoft SQL Server
Per ulteriori informazioni sulla terminologia di aggiornamento software, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
824684Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft
piano di esecuzione distinti

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 949854 - Ultima revisione: 05/06/2008 17:05:52 - Revisione: 2.1

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB949854 KbMtit
Feedback
document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">