FIX: Ottimizzazione di SQL Server pu˛ sottostimare la cardinalitÓ di query di intervallo

Traduzione articoli Traduzione articoli
Identificativo articolo: 816883 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
BUG #: 364245 (SQL Server 8.0)
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Query optimizer di SQL Server potrebbe non correttamente stimare la cardinalitÓ di un'espressione se sono vere tutte le condizioni seguenti:
  • La query specifica due condizioni di intervallo diverso, ad esempio colonna BETWEEN x e y o colonna > x.
  • Entrambi i predicati di intervallo sono qualificati con AND condizione.
  • Per creare statistiche per ognuna delle due colonne, da manuale o automatico o da un indice che specifica la colonna come colonna iniziale, Ŕ disponibile un istogramma.
  • DensitÓ a pi¨ colonne Ŕ disponibile per la combinazione di due colonne.
La query riportata di seguito Ŕ un esempio di una query che potrebbe essere interessato da questo problema:
SELECT *
FROM    a  
WHERE	 a.[SALESORG] BETWEEN 'B001' AND 'B099'  AND     
	 a.[SOLD_TO] BETWEEN 'B000000001' AND 'B000010000' 
in questo esempio, deve essere presente negli istogrammi per SALESORG e SOLD_TO e statistiche deve essere presente per la combinazione di SALESORG e SOLD_TO .

A causa di questo bug, optimizer underestimates in genere il numero di righe da tale predicato. Query optimizer di SQL Server Ŕ possibile selezionare un piano che non Ŕ efficiente, ad esempio l'utilizzo di un indice di ricerca quando scansione di un indice non Ŕ pi¨ appropriata, utilizzando un ordine di join non corretto o non utilizzare un corrispondente di vista indicizzata.

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 di lingua inglese di questo aggiornamento rapido (hotfix) presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. 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
--------------------------------------------------------------
27-Mar-2003  02:47  2.4.1.0        11,172,351  Sql2000-kb810185-8.00.0794-enu.exe
Nota A causa delle dipendenze fra i file, la funzionalitÓ che contiene i file o l'aggiornamento rapido (hotfix) pi¨ recente pu˛ contenere anche ulteriori file.

Status

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

Informazioni

Questa correzione viene attivata solo quando si utilizza il flag di traccia 9256. Per ulteriori informazioni sull'utilizzo del flag di traccia, vedere la documentazione in linea di SQL Server 2000.

ProprietÓ

Identificativo articolo: 816883 - Ultima modifica: mercoledý 26 febbraio 2014 - Revisione: 10.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:á
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB816883 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: 816883
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