Microsoft SQLServer
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 ist1433. -
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 auftruesetzen, 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 einacquire-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. ÜberschreibtsoftIdleTimeoutMillis. Standard:30000. -
pool.errorHandler- Funktion, die bei'error'-Ereignissen des Pools aufgerufen wird. Akzeptiert einen Fehler-Parameter. Standardmäßig wird aufwarn-Level geloggt. -
options.fallbackToDefaultDb- Standardmäßig schlägt die Verbindung fehl, wenn die inoptions.databaseangeforderte Datenbank nicht erreichbar ist. Wenn jedochoptions.fallbackToDefaultDbauftruegesetzt 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 mitport(kein Standard). -
options.enableAnsiNullDefault- Bei true wirdSET ANSI_NULL_DFLT_ON ONim 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ürSET XACT_ABORTwä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, wenncolumnNameReplacergesetzt ist (Standard:false). -
options.isolationLevel- Standard-Isolationslevel für Transaktionen. Verfügbare Level ausrequire('tedious').ISOLATION_LEVEL:READ_UNCOMMITTEDREAD_COMMITTEDREPEATABLE_READSERIALIZABLESNAPSHOT
(Standard:
READ_COMMITTED) -
options.connectionIsolationLevel- Standard-Isolationslevel für neue Verbindungen. Alle transaktionsexternen Abfragen verwenden diese Einstellung. Verfügbare Level ausrequire('tedious').ISOLATION_LEVEL:READ_UNCOMMITTEDREAD_COMMITTEDREPEATABLE_READSERIALIZABLESNAPSHOT
(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 dendone*-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 überrequire('tedious').TDS_VERSIONabrufbar.7_17_27_3_A7_3_B7_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, obdebug-Ereignisse mit Text, der Paketdetails beschreibt, ausgegeben werden (Standard:false). -
options.debug.data- Ein Boolean, der steuert, obdebug-Ereignisse mit Text, der Paketdaten-Details beschreibt, ausgegeben werden (Standard:false). -
options.debug.payload- Ein Boolean, der steuert, obdebug-Ereignisse mit Text, der Nutzdaten-Details beschreibt, ausgegeben werden (Standard:false). -
options.debug.token- Ein Boolean, der steuert, obdebug-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
lengthangegeben werden