Ein Mechanismus zum Verwalten des gleichzeitigen Zugriffs auf gemeinsam genutzte Daten oder Ressourcen, indem vorübergehend exklusiver Zugriff auf die Prozesse gewährt wird, die die Sperre anfordern.
Angenommen, ich habe eine Tabelle foo, die einige Statistiken enthält, die hin und wieder berechnet werden. Es wird häufig von anderen Abfragen verwendet. Aus diesem Grund möchte ich neuere Statistiken berechnen foo_newund austauschen, wenn die Berechnung abgeschlossen ist. ich könnte ALTER TABLE foo RENAME foo_tmp; ALTER TABLE foo_new RENAME foo; …
Das ist ziemlich einfach, aber ich bin verblüfft darüber, was PG macht (v9.0). Wir beginnen mit einer einfachen Tabelle: CREATE TABLE test (id INT PRIMARY KEY); und ein paar Zeilen: INSERT INTO TEST VALUES (1); INSERT INTO TEST VALUES (2); Mit meinem bevorzugten JDBC-Abfragetool (ExecuteQuery) verbinde ich zwei Sitzungsfenster mit …
Ich bin ein Berichtsentwickler, der meine Abfragen so effizient wie möglich gestalten möchte. Früher habe ich mit einem Datenbankadministrator zusammengearbeitet, der mir gesagt hat, dass ich - glaube ich, weil ich mich immer mit Berichten auf einem Produktionsserver befasst habe - diese NOLOCKin jeder einzelnen Abfrage verwenden soll. Jetzt arbeite …
Was ist die beste Möglichkeit, um Spalten zu großen Produktionstabellen in SQL Server 2008 R2 hinzuzufügen? Laut Online-Büchern von Microsoft: Die in ALTER TABLE angegebenen Änderungen werden sofort implementiert. Wenn die Änderungen Änderungen an den Zeilen in der Tabelle erfordern, aktualisiert ALTER TABLE die Zeilen. ALTER TABLE erwirbt eine Schemaänderungssperre …
Angenommen, Sie haben den folgenden Code (bitte ignorieren Sie, dass er schrecklich ist): BEGIN TRAN; DECLARE @id int SELECT @id = id + 1 FROM TableA; UPDATE TableA SET id = @id; --TableA must have only one row, apparently! COMMIT TRAN; -- @id is returned to the client or used …
Die gespeicherte Prozedur sp_getapplock hat die folgenden Rückgabewerte: 0: Die Sperre wurde erfolgreich synchron erteilt. 1: Die Sperre wurde erfolgreich erteilt, nachdem gewartet wurde, bis andere inkompatible Sperren freigegeben wurden. -1: Die Sperranforderung ist abgelaufen. -2: Die Sperranforderung wurde abgebrochen. -3: Die Sperranforderung wurde als Deadlock-Opfer ausgewählt. -999: Zeigt eine …
TL; DR: Die folgende Frage lautet: Gibt es beim Einfügen einer Zeile ein Zeitfenster zwischen der Generierung eines neuen IdentityWerts und dem Sperren des entsprechenden Zeilenschlüssels im Clustered-Index, in dem ein externer Beobachter einen neueren sehen könnte Identity Wert, der von einer gleichzeitigen Transaktion eingefügt wurde? (In SQL Server.) Ausführliche …
Mussten Sie jemals rechtfertigen, KEINEN Abfragehinweis zu verwenden? Ich sehe WITH (NOLOCK)in jeder einzelnen Abfrage, die einen sehr ausgelasteten Server trifft. Die Entwickler sind der Meinung, dass es standardmäßig aktiviert sein sollte, weil sie es hassen, es tausende Male in ihrem Code zu sehen. Ich habe versucht zu erklären, dass …
Wir haben BI-Software und eine Repository-Datenbank verwendet, die auf Oracle Enterprise 11gR2 installiert sind. Einige dieser Stapelberichte versuchen, auf eine Datenbanktabelle zuzugreifen, die möglicherweise noch gesperrt ist. Wie kann ich herausfinden, ob eine Oracle-Tabelle gesperrt ist oder nicht? Gibt es eine SQL-Anweisung, die Verlaufsdetails für die Analyse anzeigt?
Wir versuchen, eine große Anzahl von Datensätzen in einer Multi-Milliarden-Zeilentabelle zu aktualisieren / löschen. Da dies ein beliebter Tisch ist, gibt es in verschiedenen Abschnitten dieses Tisches eine Menge Aktivität. Jede große Aktualisierungs- / Löschaktivität wird für längere Zeit blockiert (da darauf gewartet wird, dass alle Zeilen, Seitensperren oder Tabellensperren …
Ich habe versucht, Informationen zum Blockieren in SQL Server zu finden, konnte jedoch keine präzise Erklärung dafür finden, was es ist und wie es geschieht. Könnten Sie mich bitte aufklären?
Ich versuche zu verstehen / zu lernen, wie man die Details einer blockierten Sitzung aufspürt. Also habe ich folgendes Setup erstellt: create table foo (id integer not null primary key, some_data varchar(20)); insert into foo values (1, 'foo'); commit; Jetzt verbinde ich mich zweimal von zwei verschiedenen Clients aus mit …
Diese Frage wurde von Stack Overflow migriert, da sie in Stack Exchange für Datenbankadministratoren beantwortet werden kann. Vor 5 Jahren migriert . In einer anderen Anwendung stieß ich auf ein schlechtes Design: Mehrere Threads führen EnsureDatabaseSchemaExists()gleichzeitig eine Methode aus, die im Grunde so aussieht: IF NOT EXISTS (SELECT * FROM …
Angenommen, ich habe die folgende lange laufende Abfrage UPDATE [Table1] SET [Col1] = 'some value' WHERE [Col2] -- some clause which selects thousands of rows Angenommen, die folgende Abfrage wird ausgeführt, während die obige Abfrage ausgeführt wird SELECT * FROM [Table1] Verhindert die erste Abfrage, dass die zweite Abfrage ausgeführt …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.