Ich habe eine Tabelle, Schema ist sehr einfach, eine ID-Spalte als eindeutiger Primärschlüssel (uniqueidentifier Typ) und einige andere Nvarchar-Spalten. Mein aktuelles Ziel ist es, für 5000 Eingaben zu berechnen, welche bereits in der Tabelle enthalten sind und welche nicht. Tht-Eingaben sind Zeichenfolge und ich habe eine C# -Funktion, die Zeichenfolge in Uniqueidentifier (GUID) konvertiert. Meine Logik ist, wenn es eine vorhandene ID gibt, behandle ich die Zeichenfolge als bereits in der Tabelle enthalten.wie SQL-Abfrage-Leistung in meinem Fall zu verbessern
Meine Frage ist, wenn ich herausfinden muss, welche aus den 5000 Eingabezeichenfolgen bereits in DB enthalten sind, und was nicht, was ist der effizienteste Weg?
BTW: Meine aktuelle Implementierung ist, konvertieren Zeichenfolge in GUID mit C# -Code, dann aufrufen/implementieren eine Speicherprozedur, die Abfrage, ob eine ID in der Datenbank vorhanden ist und zurück zu C# -Code.
Meine Arbeitsumgebung: VSTS 2008 + SQL Server 2008 + C# 3.5.
"einspaltige temporäre Tabelle X" - zu schätzen, wenn Sie dies klären könnten. Ich denke, dieser Punkt ist wichtig. temporäre Tabelle Sie meinen, eine physische Tabelle zu erstellen oder? – George2
CREATE TABLE #X (thecol VARCHAR (30)) macht die temporäre Tabelle (die führende # im Namen ist, was es temporär macht) - es dauert nur so lange wie die Prozedur oder Sitzung, die es erstellt. –
In meinem Szenario, (1) warum eine temporäre Tabelle besser ist? Verglichen mit dem Erstellen einer anderen physischen Tabelle? (2) Für den temporären Tisch, was ist Ihr Rat, wenn wir es erstellen/wenn wir es fallen lassen. d. h., es wird jedes Mal eine neue temporäre Tabelle erstellt, wenn 5000 Batch-Abfragen vorhanden sind und nach dem Join gelöscht werden, oder wenn die temporäre Tabelle nur einmal erstellt wird? – George2