Chaque relation a une carte de visibilité (VM acronyme de Visibility Map) pour garder trace des pages contenant seulement des lignes connues pour être visibles par toutes les transactions actives. Elle est stockée en dehors du fichier de données dans un fichier séparé nommé suivant le numéro relfilenode de la relation, auquel est ajouté le suffixe _vm. Par exemple, si le relfilenode de la relation est 12345, la VM est stockée dans un fichier appelé 12345_vm, dans le même répertoire que celui du fichier de données. Notez que les index n'ont pas de VM.
La carte de visibilité enregistre un bit par page. Un bit à 1 signifie que toutes les lignes de la page sont visibles par toutes les transactions. Cela signifie que le page ne contient pas de lignes nécessitant un VACUUM. Cette information peut aussi être utilisé par les parcours d'index seuls pour répondre aux requêtes utilisant seulement l'enregistrement de l'index.
Chaque fois qu'un bit est à 1, la condition est vraie à coup sûr. Par contre, dans le cas contraire, la condition peut être vraie comme fausse. Les bits de la carte de visibilité ne sont initialisés que par le VACUUM, mais sont désinitialisés par toutes opérations de modification des données sur une page.