Isolations Level für eine Datenbank ändern
- Dieses Thema hat 1 Antwort und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 17 Jahre, 8 Monaten von
Anonym.
-
AuthorPosts
-
20. Januar 2006 um 23:05 Uhr #2649
AnonymGasthallo,
wo und wie kann ich eigentlich für eine datenbank den Isolations Level verändern?
ich möchte das während einer transaktion nicht ein ganzer bereich gesperrt wird, sondern nur das eine tupel was gerade gelesen/geschrieben wird.
ich weiß leider nicht mal was die standard einstellung ist und auch nicht wo und wie ich diesen schalter umlegen kann…
ich wollte dadurch den durchsatz bei zugriffen durch mehrere clints vergrößen.
23. Januar 2006 um 8:19 Uhr #3065
AnonymInaktivhallo jaipur,
der Isolation-Level wird nicht an der Datenbank, sondern am Package (oder Plan) angegeben. Allerdings bestimmt der Iso nicht die Bereiche, die gesperrt werden, sondern wie lang ein Lock bestehen bleibt (insbesondere S-Locks).
Um den gesperrten Bereich zu verkleinern kann man am Tablespace Row-Level-Locking aktivieren (Default ist Page-Locking, bzw. Locksize Any). Ich empfehle aber, dies nur nach einer umfangreichen Analyse des Problems zu tun! Also zunächst die Zugriffspfade analysieren, sind sie ok? Ist der schlechte Durchsatz tatsächlich auf Lock-Suspensions zurück zu führen? Gibt es Deadlocks/Timeouts?
M. E. wird Row-Level-Locking fast immerr zu schnell eingesetzt. Bei Row-Level-Locking ist insbesondere keine Lock-Avoidance mehr möglich!
Locking ist im DB2 (leider) ein sehr umfangreiches Thema, das aber meist sehr stiefmütterlich behandelt wird (und in den Unterlagen auch schlecht erklärt ist). Kann hier leider nicht einen ganzen Aufsatz über Locking schreiben, aber vielleicht kannst du das Problem noch näher beschreiben.MfG Rolf
-
AuthorPosts
You must be logged in to reply to this topic.