
Envoyé par
alassanediakite
Allasan vous confondez MVCC et verrouillage optimiste.
MVCC est un algorithme de gestion du verrouillage optimiste basé sur le contrôle de concurrence de multiples version de "tuples". Il existe d'autres algorithmes. SQL Server n'utilise pas MVCC... C'est juste une connerie de wikimerdia ! En effet SQL Server utilise le concept original de SNAPSHOT ISOLATION tiré des recherches originales de Gray et Bernstein (inventeur de la journalisation des transactions des SRGBDR). Pour information, Bernstein travaille pour Microsoft depuis la fin des années 90...
http://www.cs.usyd.edu.au/~fekete/te...eSI-Fekete.pdf
ce doc explique les différents algorithmes de verrouillage optimiste de Oracle, PG et SQL Server en détail, et se base pour SQL Server sur "Microsoft Research", le pôle R&D de MS.
En complément ce papier montre que Oracle et SQL Server travaillent en mode SNAPSHOT :
http://www.vldb.org/pvldb/vol8/p2146-levandoski.pdf
Et non pas en "pur" MVCC. D'ailleurs le papier pointe que l'utilisation de MVCC interdit d'autres niveaux d'isolation, ce qui fait que PG est limité dans les différents niveaux d'isolation...
"Concurrency control to provide serializable transactions using multiple versions has been explored as well. For instance, Cahill et al explore adding a lock manager in Postgres that otherwise used versions to support only snapshot isolation [3]."
[3] M. J. Cahill, U. Rohm, and A. D. Fekete. Serializable Isolation for Snapshot Databases. In Sigmod, 2008, pp. 729 – 738.
Ce qui est bien confirmé dans la doc PG :
In PostgreSQL, you can request any of the four standard transaction isolation levels, but internally only three distinct isolation levels are implemented, i.e. PostgreSQL's Read Uncommitted mode behaves like Read Committed. This is because it is the only sensible way to map the standard isolation levels to PostgreSQL's multiversion concurrency control architecture.
Extrait de : https://www.postgresql.org/docs/9.5/...ction-iso.html
CQFD !
Quand à DBCC c'est un utilitaire pour piloter le moteur de stockage et vous n'y trouverez rien pour nettoyer tempdb ni les versions de lignes liées au verrouillage optimiste....
Si ma parole ne vous suffit pas (comme vous la mettez en doute systématiquement...) vous pouvez lister les commandes de DBCC en lançant un :
Et pour avoir la syntaxe d'une commande faire :
DBCC HELP ('MaCommande DBCC')
Au lieu de tout lorgner avec une lunette façonné par PostGreSQL en croyant que c'est l'évangile, commencez par apprendre les fondements des SGBDR. Je vous recommande en premier le recueil de textes fondateurs des SGBDR disponible chez Mogan Kaufman "Readings in Database systemes"
https://www.amazon.com/Readings-Data.../dp/1558605231
A +
Partager