2017-11-14 1 views
-2
select id, subject, date, source 
from TABLE_NAME 
where source = 'ABC' 
order by date desc 

Die obige Abfrage ruft nur 917 Zeilen auszuführen (aus 300.000 Zeilen), muss aber fast 3 MinutenEinfache Auswahlabfrage nimmt lange Zeit

run time of query

Was könnte das Problem sein?

+0

Das macht keinen Sinn. Wie viele Zeilen hast du deinen Tisch? – FLICKER

+0

etwa 300.000 Datensätze – Faisal

+1

Zum Beispiel Sperren durch andere Sitzungen. Express-Edition könnte 1 GB RAM verwenden. – lad2025

Antwort

0

Dies kann auftreten, wenn Ihre Tabelle nicht ordnungsgemäß indiziert ist. Da Sie 917 von 300000 Datensätzen filtern, musste die Datenbank-Engine, wenn die von Ihnen gesuchte Spalte "Quelle" nicht indiziert ist, von Anfang bis Ende suchen, um die übereinstimmenden Werte zu finden. Fügen Sie der Spalte einen nicht gruppierten Index hinzu - Wenn Sie bereits einen Clustered-Index für eine andere Spalte in derselben Tabelle haben.

siehe die Links unten, um weitere Details zu

Indexing

Understanding SQL Server Indexing - mssqltips.com

SQL Server Indexes Tutorial - SQL Server Planet

Indexes in MS SQL Server - Code Project

+0

aber wählen Sie * aus TABLE_Name dauert auch von 8-9 Minuten – Faisal

+0

Es gibt so viele Faktoren, die die Tabellenleistung beeinflussen können. Die Indizierung ist die primäre. Überprüfen Sie diesen Link für mehr https://www.mssqltips.com/sql-server-tip-category/9/performance-tuning/ –

+0

und da es 300000 Datensätze gibt, könnte es sowieso einige Zeit dauern –

Verwandte Themen