FIX: Query che esegue operazioni di join tra pi¨ tabelle restituiscano risultati non corretti

Traduzione articoli Traduzione articoli
Identificativo articolo: 817186 - Visualizza i prodotti a cui si riferisce l?articolo.
BUG #: 364392

(SQL Server 8.0)
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue una query che esegue operazioni di join tra pi¨ tabelle, la query potrebbe restituire risultati non corretti. Questo comportamento potrebbe essere visualizzato quando query optimizer di SQL Server riconosce la query come un candidato per una strategia di join interno noto come un join a stella e sceglie la strategia di join a stella per eseguire il join le tabelle nella query.

Workaround

Per ovviare al problema, creare una tabella temporanea per memorizzare i risultati intermedi o per archiviare le aggregazioni complesse basate su pi¨ join della tabella di grandi dimensioni. Quindi, il join delle altre tabelle con la tabella temporanea. Questo potrebbe impedire che query optimizer di SQL Server utilizzando la strategia di join a stella per unire le tabelle nella query. Questo fatto, a sua volta, potrebbe causare la query restituisca i risultati corretti.

Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
290211Come ottenere il service pack pi¨ recente per SQL Server 2000

Informazioni sull'hotfix

La versione in lingua inglese di questa correzione presenta gli attributi di file elencati nella tabella seguente (o successivi). Date e ore per questi file sono indicati nella coordinated universal time (UTC). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello strumento Data e ora del Pannello di controllo.
   Date         Time   Version         Size       File name
   ----------------------------------------------------------------------
   29-Jan-2003  11:48  7.0.9466.0        344,064  Msvcr70.dll      
   29-Jan-2003  11:48  2000.80.722.0      57,904  Osql.exe         
   29-Jan-2003  11:48  2000.80.534.0     127,548  Sqdedev.dll      
   29-Jan-2003  11:48  2000.80.194.0     180,290  Sqlunirl.dll     
   25-Feb-2003  14:11  2000.80.777.0      29,244  Dbmslpcn.dll     
   07-Feb-2003  16:14                    786,432  Distmdl.ldf
   07-Feb-2003  16:14                  2,359,296  Distmdl.mdf
   29-Jan-2003  12:25                        180  Drop_repl_hotfix.sql
   31-Jan-2003  11:02  2000.80.763.0   1,557,052  Dtsui.dll        
   29-Jan-2003  15:48                    746,470  Instdist.sql
   29-Jan-2003  12:25                      1,402  Inst_repl_hotfix.sql
   07-Feb-2003  17:10  2000.80.765.0      90,692  Msgprox.dll      
   07-Feb-2003  14:23                  1,065,895  Replmerg.sql
   07-Feb-2003  17:10  2000.80.765.0     221,768  Replprov.dll     
   07-Feb-2003  17:10  2000.80.765.0     307,784  Replrec.dll      
   06-Mar-2003  15:32                  1,084,369  Replsys.sql
   03-Mar-2003  03:48                    104,958  Sp3_serv_uni.sql
   19-Mar-2003  04:50  2000.80.789.0      28,672  Sqlevn70.rll
   27-Feb-2003  12:04  2000.80.778.0     176,696  Sqlmap70.dll     
   07-Feb-2003  17:10  2000.80.765.0      57,920  Sqlrepss.dll     
   19-Mar-2003  04:54  2000.80.789.0   7,540,820  Sqlservr.exe     
   07-Feb-2003  17:10  2000.80.765.0      45,644  Sqlvdi.dll       
   25-Feb-2003  14:11  2000.80.777.0      29,244  Ssmslpcn.dll     
   25-Feb-2003  14:11  2000.80.777.0      82,492  Ssnetlib.dll     
   17-Mar-2003  01:19                    727,132  Sysmessages.sym
   27-Feb-2003  12:04  2000.80.778.0      98,872  Xpweb70.dll      
				
Nota causa di dipendenze tra i file, l'aggiornamento rapido pi¨ recente o la funzionalitÓ che contiene i file potrebbe anche contenere ulteriori file.

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a" di questo articolo.Questo problema Ŕ stato innanzitutto corretto in SQL Server 2000 Service Pack 4.

Informazioni

Questo problema non si verifica con tutte le query che eseguono il join tra pi¨ tabelle. Dopo che analizza gli indici e i riferimenti per le tabelle unite in join nella query, query optimizer sceglie la strategia di join. Il choses di SQL Server query optimizer una stella join strategia solo se il join a stella Ŕ considerato la strategia ottimale di join. Di conseguenza, questo problema non si verifica con la maggior parte delle query che coinvolgono il join tra pi¨ tabelle perchÚ un join a stella non Ŕ una strategia comune per query optimizer di SQL Server da utilizzare.

Tuttavia, il piano di esecuzione di una query non fornisce alcuna informazione sul se query optimizer ha scelto la strategia di join a stella per il join delle tabelle nella query.

ProprietÓ

Identificativo articolo: 817186 - Ultima modifica: venerdý 2 novembre 2007 - Revisione: 4.3
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Chiavi:á
kbmt kbhotfixserver kbqfe kbqfe kbtsql kbtable kbquery kbschema kbdatabase kbsqlserv2000presp4fix kbfix kbbug KB817186 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: 817186
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