Datenbankadministratoren

Fragen und Antworten für Datenbankexperten, die ihre Datenbankfähigkeiten verbessern und von anderen in der Community lernen möchten

1
Wäre es besser, Abfragepläne zur Wiederverwendbarkeit nach Anweisungen aufzuteilen?
Aufgrund meiner begrenzten Kenntnisse darüber, wie Abfragepläne von Abfragen kompiliert, gespeichert und abgerufen werden, verstehe ich, dass eine Abfrage mit mehreren Anweisungen oder eine gespeicherte Prozedur ihren Abfrageplan generiert, der im Abfrageplan-Cache gespeichert wird, der von der Abfrage bei zukünftigen Ausführungen verwendet wird. Ich denke, dieser Plan wird mit dem …

2
ROLLBACK funktioniert nach dem Einfügen in eine neu erstellte Zieltabelle nicht
Ich arbeite an einem PHP-Skript, das CSV-Datei ( customers.csv) in MySQL table ( customers) importiert . Bevor ich den Inhalt der CSV-Datei in die MySQL-Tabelle einfüge, sichere ich zuerst die ursprüngliche customersTabelle. Ich verpacke den gesamten Importprozess (einschließlich der Sicherung) in eine MySQL-Transaktion (um Fälle zu berücksichtigen, in denen CSV …



2
Grundlegendes zu Statistiken, Ausführungsplänen und dem aufsteigenden Schlüsselproblem
Ich versuche, die Beziehung zwischen Statistiken, Ausführungsplänen und der Ausführung gespeicherter Prozeduren (konzeptionell) besser zu verstehen. Stimmt es, dass Statistiken nur beim Erstellen des Ausführungsplans für eine gespeicherte Prozedur verwendet werden und nicht im tatsächlichen Ausführungskontext verwendet werden? Mit anderen Worten, wenn dies zutrifft, wie wichtig sind "aktuelle" Statistiken, sobald …

3
E-Mail-Adresse eindeutig oder Primärschlüssel?
Ich bin ein Neuling in Datenbanken. Ich habe herumgelesen und festgestellt, dass es wahrscheinlich keine gute Idee ist, die E-Mail-Adresse als Primärschlüssel zu verwenden, da Zeichenfolgenvergleiche langsamer sind, was sich auf die Leistung bei komplexen Verknüpfungen auswirkt. Wenn sich eine E-Mail ändert, muss ich alle Fremdschlüssel ändern, was viel erfordert …


3
Kaskaden-Primärschlüsselaktualisierung für alle referenzierenden Fremdschlüssel
Ist es möglich, einen Primärschlüsselspaltenwert zu aktualisieren, indem die Aktualisierung auf alle Fremdschlüssel kaskadiert wird, die darauf verweisen? # EDIT 1: Wenn ich followinq query ausführe select * from sys.foreign_keys where referenced_object_id=OBJECT_ID('myTable') Ich sehe, dass update_referential_action auf 0 gesetzt ist. Daher wird nach dem Aktualisieren meiner Primärschlüsselspalten KEINE AKTION ausgeführt. …



2
ROW_NUMBER () ohne PARTITION BY generiert weiterhin einen Segmentiterator
Ich schreibe in einem meiner nächsten Blog-Beiträge über Ranking- und aggregierte Fensterfunktionen, insbesondere die Segment- und Sequenzprojekt-Iteratoren. Ich verstehe es so, dass Segment Zeilen in einem Stream identifiziert, die das Ende / den Anfang einer Gruppe bilden, also die folgende Abfrage: SELECT ROW_NUMBER() OVER (PARTITION BY someGroup ORDER BY someOrder) …

3
Übergeben von Informationen darüber, wer den Datensatz gelöscht hat, an einen Löschauslöser
Beim Einrichten eines Prüfpfads habe ich kein Problem damit, zu verfolgen, wer Datensätze aktualisiert oder in eine Tabelle einfügt. Das Verfolgen, wer Datensätze löscht, scheint jedoch problematischer. Ich kann Einfügungen / Aktualisierungen verfolgen, indem ich in das Feld Einfügen / Aktualisieren das Feld "UpdatedBy" einfüge. Dadurch kann der INSERT / …

2
Langsame Index-Scans in einer großen Tabelle
Mit PostgreSQL 9.2 habe ich Probleme mit langsamen Abfragen in einer relativ großen Tabelle (mehr als 200 Millionen Zeilen). Ich versuche nichts Verrücktes, sondern füge nur historische Werte hinzu. Unten finden Sie die Abfrage und die Ausgabe des Abfrageplans. Mein Tabellenlayout: Table "public.energy_energyentry" Column | Type | Modifiers -----------+--------------------------+----------------------------------------------------------------- id …


1
Der belebte Tisch wird nicht gesaugt
Wir verwenden Postgres 9.2 unter Windows, um Zeitreihendaten mit niedriger Frequenz zu speichern: Wir fügen 24 Stunden, 7 Tage die Woche ohne Ausfallzeiten etwa 2000 Zeilen pro Sekunde pro Sekunde ein. Es gibt eine DELETE, die etwa alle 10 Minuten auf dem Tisch ausgeführt wird, um die Länge der Tabelle …

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.