Zum Hauptinhalt springen

Microsoft SQLServer

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Installation

npm install mssql

Datenquellen-Optionen

Allgemeine Datenquellen-Optionen finden Sie unter Data Source Options.

Basiert auf der tedious-MSSQL-Implementierung. Details zu verfügbaren Attributen finden Sie in SqlServerConnectionOptions.ts.

  • url - Verbindungs-URL, über die die Verbindung hergestellt wird. Beachten Sie, dass andere Datenquellen-Optionen Parameter aus der URL überschreiben.

  • host - Datenbank-Host.

  • port - Port des Datenbank-Hosts. Standardport für MSSQL ist 1433.

  • username - Datenbank-Benutzername.

  • password - Datenbank-Passwort.

  • database - Datenbankname.

  • schema - Schema-Name. Standard ist "dbo".

  • domain - Bei Angabe einer Domain verbindet sich der Treiber mit SQL Server über eine Domänenanmeldung.

  • connectionTimeout - Verbindungs-Timeout in ms (Standard: 15000).

  • requestTimeout - Anfrage-Timeout in ms (Standard: 15000). HINWEIS: Der msnodesqlv8-Treiber unterstützt keine Timeouts unter 1 Sekunde.

  • stream - Überträgt Datensätze/Zeilen als Stream, statt sie auf einmal an die Callback-Funktion zu übergeben (Standard: false). Streaming kann auch pro Anfrage aktiviert werden (request.stream = true). Immer auf true setzen, wenn mit großen Datenmengen gearbeitet wird.

  • pool.max - Maximale Anzahl von Verbindungen im Pool (Standard: 10).

  • pool.min - Minimale Anzahl von Verbindungen im Pool (Standard: 0).

  • pool.maxWaitingClients - Maximale Anzahl wartender Anfragen; zusätzliche acquire-Aufrufe erhalten in einem späteren Event-Loop-Zyklus einen Fehler.

  • pool.acquireTimeoutMillis - Maximale Wartezeit in ms, die ein acquire-Aufruf auf eine Ressource wartet, bevor ein Timeout eintritt. (Standard: unbegrenzt). Bei Angabe muss es sich um eine positive Ganzzahl handeln.

  • pool.fifo - Bei true werden die ältesten Ressourcen zuerst zugewiesen. Bei false werden zuletzt freigegebene Ressourcen priorisiert. Dies wandelt das Pool-Verhalten von einer Warteschlange in einen Stack. Boolean (Standard: true).

  • pool.priorityRange - Ganzzahl zwischen 1 und x. Bei Angabe können Anfragende bei Ressourcenmangel eine Priorität in der Warteschlange festlegen. Siehe Beispiel (Standard: 1).

  • pool.evictionRunIntervalMillis - Intervall für Ressourcen-Prüfungen in ms. Standard: 0 (deaktiviert).

  • pool.numTestsPerRun - Anzahl der pro Prüflauf untersuchten Ressourcen. Standard: 3.

  • pool.softIdleTimeoutMillis - Zeit in ms, die eine Ressource im Pool im Leerlauf verbringen darf, bevor sie entfernt werden kann – vorausgesetzt, mindestens "min idle"-Instanzen verbleiben im Pool. Standard: -1 (keine Entfernung).

  • pool.idleTimeoutMillis - Minimale Leerlaufzeit in ms, nach der eine Ressource aufgrund von Inaktivität entfernt werden kann. Überschreibt softIdleTimeoutMillis. Standard: 30000.

  • pool.errorHandler - Funktion, die bei 'error'-Ereignissen des Pools aufgerufen wird. Akzeptiert einen Fehler-Parameter. Standardmäßig wird auf warn-Level geloggt.

  • options.fallbackToDefaultDb - Standardmäßig schlägt die Verbindung fehl, wenn die in options.database angeforderte Datenbank nicht erreichbar ist. Wenn jedoch options.fallbackToDefaultDb auf true gesetzt ist, wird stattdessen die Standarddatenbank des Benutzers verwendet (Standard: false).

  • options.instanceName - Instanzname für die Verbindung. Der SQL Server Browser-Dienst muss auf dem Datenbankserver laufen und UDP-Port 1434 erreichbar sein. Gegenseitig ausschließend mit port (kein Standard).

  • options.enableAnsiNullDefault - Bei true wird SET ANSI_NULL_DFLT_ON ON im initialen SQL gesetzt. Dadurch sind neue Spalten standardmäßig nullable. Details siehe T-SQL-Dokumentation (Standard: true).

  • options.cancelTimeout - Millisekunden, bevor ein Abbruch (Abort) einer Anfrage als fehlgeschlagen gilt (Standard: 5000).

  • options.packetSize - Größe der TDS-Pakete (unterliegt der Aushandlung mit dem Server). Sollte eine Zweierpotenz sein (Standard: 4096).

  • options.useUTC - Legt fest, ob Zeitwerte in UTC oder Ortszeit übergeben werden (Standard: false).

  • options.abortTransactionOnError - Legt fest, ob Transaktionen automatisch zurückgesetzt werden, wenn während ihrer Ausführung Fehler auftreten. Setzt den Wert für SET XACT_ABORT während der initialen Verbindungsphase (Dokumentation).

  • options.localAddress - IP-Adresse der Netzwerkschnittstelle, die für die Verbindung zu SQL Server verwendet werden soll.

  • options.useColumnNames - Legt fest, ob Zeilen als Arrays oder Schlüssel-Wert-Sammlungen zurückgegeben werden (Standard: false).

  • options.camelCaseColumns - Steuert, ob der erste Buchstabe von Spaltennamen in Kleinbuchstaben konvertiert wird (true). Dieser Wert wird ignoriert, wenn columnNameReplacer gesetzt ist (Standard: false).

  • options.isolationLevel - Standard-Isolationslevel für Transaktionen. Verfügbare Level aus require('tedious').ISOLATION_LEVEL:

    • READ_UNCOMMITTED
    • READ_COMMITTED
    • REPEATABLE_READ
    • SERIALIZABLE
    • SNAPSHOT

    (Standard: READ_COMMITTED)

  • options.connectionIsolationLevel - Standard-Isolationslevel für neue Verbindungen. Alle transaktionsexternen Abfragen verwenden diese Einstellung. Verfügbare Level aus require('tedious').ISOLATION_LEVEL:

    • READ_UNCOMMITTED
    • READ_COMMITTED
    • REPEATABLE_READ
    • SERIALIZABLE
    • SNAPSHOT

    (Standard: READ_COMMITTED)

  • options.readOnlyIntent - Legt fest, ob die Verbindung nur Lesezugriff von einer SQL Server Availability Group anfordert (Standard: false).

  • options.encrypt - Legt fest, ob die Verbindung verschlüsselt wird. Für Windows Azure auf true setzen (Standard: true).

  • options.cryptoCredentialsDetails - Bei Verwendung von Verschlüsselung: Objekt, das als erstes Argument für tls.createSecurePair dient (Standard: {}).

  • options.rowCollectionOnDone - Ein Boolean, der bei true die empfangenen Zeilen in den done*-Events von Requests verfügbar macht. Siehe done, doneInProc und doneProc (Standard: false).

    Achtung: Bei vielen Zeilen kann dies zu hohem Speicherverbrauch führen.

  • options.rowCollectionOnRequestCompletion - Bei true werden empfangene Zeilen im Completion-Callback von Requests verfügbar gemacht. Siehe new Request (Standard: false).

    Achtung: Bei vielen Zeilen kann dies zu hohem Speicherverbrauch führen.

  • options.tdsVersion - Die zu verwendende TDS-Version. Wenn der Server die angegebene Version nicht unterstützt, wird stattdessen eine ausgehandelte Version verwendet. Die verfügbaren Versionen sind über require('tedious').TDS_VERSION abrufbar.

    • 7_1
    • 7_2
    • 7_3_A
    • 7_3_B
    • 7_4

    (Standard: 7_4)

  • options.appName - Anwendungsname zur Identifizierung einer bestimmten Anwendung in Profiling-, Logging- oder Tracing-Tools von SQL Server. (Standard: node-mssql)

  • options.trustServerCertificate - Ein Boolean, der steuert, ob Verschlüsselung erfolgt, wenn kein verifizierbares Serverzertifikat vorhanden ist. (Standard: false)

  • options.multiSubnetFailover - Ein Boolean, der steuert, ob der Treiber parallel zu allen von DNS zurückgegebenen IPs verbinden soll. (Standard: false)

  • options.debug.packet - Ein Boolean, der steuert, ob debug-Ereignisse mit Text, der Paketdetails beschreibt, ausgegeben werden (Standard: false).

  • options.debug.data - Ein Boolean, der steuert, ob debug-Ereignisse mit Text, der Paketdaten-Details beschreibt, ausgegeben werden (Standard: false).

  • options.debug.payload - Ein Boolean, der steuert, ob debug-Ereignisse mit Text, der Nutzdaten-Details beschreibt, ausgegeben werden (Standard: false).

  • options.debug.token - Ein Boolean, der steuert, ob debug-Ereignisse mit Text, der Token aus dem Token-Stream beschreibt, ausgegeben werden (Standard: false).

Spaltentypen

int, bigint, bit, decimal, money, numeric, smallint, smallmoney, tinyint, float, real, date, datetime2, datetime, datetimeoffset, smalldatetime, time, char, varchar, text, nchar, nvarchar, ntext, binary, image, varbinary, hierarchyid, sql_variant, timestamp, uniqueidentifier, xml, geometry, geography, rowversion, vector

Vektor-Typ (vector)

Der vector-Datentyp ist in SQL Server zum Speichern hochdimensionaler Vektoren verfügbar, häufig verwendet für:

  • Semantische Suche mit Embeddings

  • Empfehlungssysteme

  • Ähnlichkeitsabgleich

  • Machine-Learning-Anwendungen

HINWEIS: Allgemeine Unterstützung für halfvec ist nicht verfügbar, da sich diese Funktion noch in der Vorschau befindet. Siehe Microsoft-Dokumentation: Vector data type.

Verwendung

@Entity()
export class DocumentChunk {
@PrimaryGeneratedColumn()
id: number

@Column("varchar")
content: string

// Vector column with 1998 dimensions
@Column("vector", { length: 1998 })
embedding: number[]
}

Vektor-Ähnlichkeitssuche

SQL Server stellt die Funktion VECTOR_DISTANCE zur Distanzberechnung zwischen Vektoren bereit:

const queryEmbedding = [
/* your query vector */
]

const results = await dataSource.query(
`
DECLARE @question AS VECTOR (1998) = @0;
SELECT TOP (10) dc.*,
VECTOR_DISTANCE('cosine', @question, embedding) AS distance
FROM document_chunk dc
ORDER BY VECTOR_DISTANCE('cosine', @question, embedding)
`,
[JSON.stringify(queryEmbedding)],
)

Distanzmetriken:

  • 'cosine' - Kosinus-Distanz (am gebräuchlichsten für semantische Suche)

  • 'euclidean' - Euklidische (L2) Distanz

  • 'dot' - Negatives Skalarprodukt

Voraussetzungen:

  • SQL Server-Version mit aktivierter Vektorunterstützung

  • Vektordimensionen müssen mit der Option length angegeben werden