Als «database-internals» getaggte Fragen

Bei technischen Fragen zur internen Funktionsweise des Datenbankmoduls.

4
Overhead für die Index-Eindeutigkeit
Ich habe mit verschiedenen Entwicklern in meinem Büro eine ständige Debatte über die Kosten eines Index geführt und darüber, ob die Eindeutigkeit vorteilhaft oder kostspielig ist (wahrscheinlich beides). Der Kern des Problems sind unsere konkurrierenden Ressourcen. Hintergrund Ich habe zuvor in einer Diskussion gelesen, dass ein UniqueIndex keine zusätzlichen Kosten …

2
Warum ist ein temporärer Tisch eine effizientere Lösung für das Halloween-Problem als eine eifrige Spule?
Betrachten Sie die folgende Abfrage, mit der Zeilen aus einer Quellentabelle nur dann eingefügt werden, wenn sie nicht bereits in der Zieltabelle enthalten sind: INSERT INTO dbo.HALLOWEEN_IS_COMING_EARLY_THIS_YEAR WITH (TABLOCK) SELECT maybe_new_rows.ID FROM dbo.A_HEAP_OF_MOSTLY_NEW_ROWS maybe_new_rows WHERE NOT EXISTS ( SELECT 1 FROM dbo.HALLOWEEN_IS_COMING_EARLY_THIS_YEAR halloween WHERE maybe_new_rows.ID = halloween.ID ) OPTION (MAXDOP …

2
Auf der Suche nach FILESTREAM-Insiderinformationen
Wenn die FILESTREAM-Funktion in Microsoft SQL Server 2012 aktiviert ist, erstellt SQL Server eine "versteckte" Freigabe auf dem System. Die Freigabe ist wie folgt definiert: Sharename FILESTREAM_SHARE Path \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE Remark SQL Server FILESTREAM share Maximum users unlimited Users Caching Manual caching of documents Permissions NT-AUTHORITY\Authenticated Users, FULL Der Name ist …

2
Warum erlaubt MySQL, dass HAVING SELECT-Aliase verwendet?
In SQL beginnt die logische Abfrageabarbeitungsreihenfolge, die die konzeptionelle Interpretationsreihenfolge darstellt, meines Wissens mit FROM auf folgende Weise: VON WO GRUPPIERE NACH HABEN WÄHLEN SORTIEREN NACH Anhand dieser Liste können Sie leicht erkennen, warum in einer WHERE-Klausel keine SELECT-Aliase enthalten sind, da der Alias ​​noch nicht erstellt wurde. T-SQL (SQL …

1
So simulieren Sie einen Zustand mit geringem Arbeitsspeicher, wenn Sie eine Abfrage ausführen
Ich versuche besser zu verstehen, wie sich das Ausführungsmodul von SQL Server in einem Zustand mit wenig Arbeitsspeicher verhält. Ich spreche von Gedächtnisstipendien und frage mich, ob es eine Möglichkeit gibt GrantedMemory, die Gleichberechtigung zu erzwingen RequiredMemory. (Ich vermute, dass es ein nicht dokumentiertes Ablaufverfolgungsflag gibt, das das erledigt. Weiß …

1
Was ermöglicht es SQL Server, einen Objektnamen für eine Zeichenfolge zu handeln, die an eine Systemprozedur übergeben wird
Was führt dazu, dass es legal ist, einen Objektnamen an die gespeicherte Systemprozedur zu übergeben sp_helptext? Welcher Mechanismus konvertiert den Objektnamen in eine Zeichenfolge? z.B -- works sp_helptext myproc sp_helptext [myproc] sp_helptext [dbo.myproc] -- and behaves the same as a string sp_helptext 'myproc' sp_helptext 'dbo.myproc' -- does not work sp_helptext …

2
Wie unterscheiden sich diese beiden SQL Server-Rollbacks?
Wie unterscheiden sich diese beiden Rollbacks in SQL Server 2008 R2? Führen Sie ALTEReinige Minuten lang eine Anweisung aus und klicken Sie dann auf "Ausführung abbrechen". Das vollständige Zurücksetzen dauert einige Minuten. Führen Sie dieselbe ALTERAnweisung aus, stellen Sie jedoch sicher, dass die LDFDatei nicht groß genug ist, um erfolgreich …


1
Warum verwenden diese ähnlichen Abfragen unterschiedliche Optimierungsphasen (Transaktionsverarbeitung vs. Schnellplan)?
Der Beispielcode in diesem Verbindungselement Zeigt einen Fehler wo SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item = L2.csv_item Liefert die korrekten Ergebnisse. Das Folgende gibt jedoch falsche Ergebnisse zurück (2014 mit dem neuen Kardinalitätsschätzer) SELECT (SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item …


1
Wo speichert SQL Server den IDENTITY VALUE für eine Tabelle physisch?
Ich hoffe, jemand kann mich in die richtige Richtung lenken. Hier sind meine bisherigen Ergebnisse. SELECT * FROM sys.identity_columnsist eine Systemansicht, die "last_value" ergibt, aber die Definition für diese Ansicht verwendet eine interne Funktion IdentityProperty(colName, 'LastValue')- das ist also eine Sackgasse (sie wird dort nicht aus einer Systemtabelle gezogen ). …





Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.