2017-02-23 4 views
0

Was passiert, wenn ich definieren keine Primärschlüssel in SQL-Datenbank und mehrere Benutzer versuchen gleichen Zeile zur gleichen Zeit zugreifen? Wird es zu Leistungsproblemen oder Systemabstürzen führen? Das Duplikationsproblem wurde im Code berücksichtigt.Primary Key Auswirkungen auf Multi-User-Performance

+0

Es gibt immer eine PK, die die Tabelle definiert. – Sami

+1

Warum möchten Sie keinen Primärschlüssel? – JSR

+1

Eine Tabelle ohne Clustered-Index (standardmäßig der Primärschlüssel) wird als Heap bezeichnet und ist aus Leistungsperspektive schrecklich. Und glauben Sie mir, die Durchsetzung der Datenintegrität in Ihrer Anwendung ist eine sehr schlechte Idee. –

Antwort

0

Mit der Standardkonfiguration nimmt eine Lese eine gemeinsame Sperre. Eine gemeinsame Sperre blockiert keine anderen Lesevorgänge, blockiert jedoch die Sperren für die Aktualisierung/Löschung.
Das Vorhandensein eines Primärschlüssels spielt auf dieser Ebene keine Rolle, da die Zeile bereits identifiziert wurde. Primärschlüssel erzwingen nur die Eindeutigkeit mithilfe eines Index.

Wenn ein Benutzer versucht, eine Reihe, eine exklusive Sperre wird, zu ändern oder löschen genommen, welche andere exklusive oder gemeinsam genutzte Schlösser blockiert.

Die verschiedenen Isolationsstufen können dieses Verhalten ändern.

Verwandte Themen