Frage

Gibt es irgend etwas, von dem wir schneller die nicht bekommen kann. von Zeilen in einer Tabelle anstelle der Verwendung count (1). Des Weiteren gibt es zwei Fälle:

a), wenn wir das nicht bekommen möchten. von Zeilen in einer Tabelle.

b) wenn wir wollen nur wissen, ob es bei-dest einer Reihe ist.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

a) Sie können Tabellenzeilenanzahl von Systemtabellen, 1 Beispiel ist gemäß Uri Dimant der Blog-Post hier .

b) Ich würde immer Gebrauch VORHANDEN:

IF EXISTS(SELECT * FROM YourTable)

Andere Tipps

b), wenn wir wollen, tot nur wissen, ob es atleast eine Zeile ist.

SELECT TOP 1 myField FROM myTable [WHERE .....]

die Anzahl aller Zeilen in der Tabelle kennen, ohne sie zu scannen Sie

verwenden können
select SUM(row_count) AS row_count
from sys.dm_db_partition_stats
where object_id = object_id('dbo.tblName')
    and index_id < 2

Ich bin nicht sicher, ob es irgendwelche Einschränkungen mit diesem Ansatz. (Vermutlich könnte es ist entweder die Zählung für nicht verpflichtet Aufzeichnungen oder nicht umfasst Änderungen im aktuellen Transaktion)

b) Linq to SQL erzeugt

EXISTS (SELECT NULL FROM Table....)

a) Nr.

b) Sie können die exists Funktion verwenden, das überprüft nur, wenn es ein Ergebnis ist, und eigentlich nicht das Ergebnis erhalten.

Es ist dieser Ansatz, mit Sysobjects und Sysindexes:

Zählen Zeilen für alle Tabellen auf einmal

Es ist für mich in der Vergangenheit gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top