9
votes

Quel mécanisme intégré SQL Server doit-il faire des requêtes de flashback?

pense que cela dit tout?


1 commentaires

Maintenant que SQL Server a MVCC, il devrait être trivial Tho, non?


6 Réponses :


6
votes

aucun. SQL Server n'a pas de fonctionnalité équivalente.


Mise à jour : à partir de SQL Server 2016 sur, ces informations sont obsolètes. Voir les commentaires et les réponses ci-dessous.


3 commentaires

Maintenant qu'il a MVCC, il est vraiment surprenant que ce ne soit pas.


Incorrect - Voir Daniels Répondre ci-dessous - et consultez Ceci .


@ Vérace - La réponse de Daniel est pour SQL 2016, cette question a été posée en 2009. Donc, au moment où la question a été posée / répondée, elle était correcte.



2
votes

L'équivalent le plus proche est probablement instantanés de base de données . Vous pouvez créer un instantané de base de données au moment d'intérêt, puis signaler contre l'instantané. Contrairement aux flashbacks, les moments où les instantanés SQL Server sont pris doivent être prédéterminés.


0 commentaires

1
votes

sur SQL Server 2008 Vous pouvez utiliser Change Data Capture, par cette fonctionnalité, vous pouvez faire beaucoup plus que Oracle Flash. (Il existe une procédure de magasin pour revenir à la base de données sur SQL Server 2008 si vous voulez que je puisse vous fournir cela pour vous)


1 commentaires

Pouvez-vous s'il vous plaît fournir une procédure stockée?



0
votes

Oui, nous pouvons utiliser Changer la capture de données et Modifier le suivi caractéristiques qui sont intégrées dans des mécanismes de SQL Server et beaucoup semblable à la flashback dans Oracle.

Lorsque vous appliquez des fonctions de capture de données de modification sur une table de base de données, un miroir de la table suivie est créé avec la même structure de colonne de la table d'origine, mais avec des colonnes supplémentaires qui incluent les métadonnées utilisées pour résumer la nature du changement de la ligne de la table de base de données. Le SQL Server DBA peut ensuite facilement surveiller l'activité de la table enregistrée à l'aide de ces nouvelles tables d'audit.

Tracking Modifier est une solution légère qui fournit un mécanisme de suivi de changement efficace pour les applications. Généralement, pour permettre aux applications d'interroger les modifications apportées aux données dans une base de données et d'accès aux modifications, les développeurs d'applications ont dû mettre en œuvre des mécanismes de suivi des changements personnalisés. La création de ces mécanismes impliquait généralement beaucoup de travail et fréquemment impliqué à l'aide d'une combinaison de déclencheurs, de colonnes horodatées, de nouvelles tables pour stocker des informations de suivi et des processus de nettoyage personnalisés.

Différents types d'applications ont des exigences différentes pour la quantité d'informations dont ils ont besoin sur les changements. Les applications peuvent utiliser le suivi des modifications pour répondre aux questions suivantes sur les modifications apportées à une table utilisateur:

quelles lignes ont changé pour une table utilisateur?

Seul le fait qu'une ligne a changé est nécessaire, pas combien de fois la ligne a changé ou les valeurs de tout changement intermédiaire.

Les dernières données peuvent être obtenues directement à partir de la table suivie.

a une ligne modifiée?

Le fait qu'une ligne a changé et que des informations sur le changement doivent être disponibles et enregistrées au moment de la modification de la même transaction.

Pour plus d'informations sur la manière d'utiliser Change Data Capture (CDC) et modifier le suivi de SQL Server; S'il vous plaît consulter Post de pintal Dave .

 Entrez la description de l'image ici

Suivi


0 commentaires

6
votes

Je sais que cette question est assez ancienne, mais avec SQL Server 2016 fort>, des tables temporelles sont une fonctionnalité: https://docs.microsoft.com/en-us / SQL / Relationnel-Bases de données / Tableaux / Tables temporelles

Peut-être peut-être peut-être aider les autres au cas où ils viennent à cette rubrique (recherche de quelque chose de similaire à la fonctionnalité de Flashback Oracle) P>

avec temporal Tables activées, vous pouvez interroger la table à partir d'un horodatage spécifique et récupérer des lignes telles qu'elles étaient dans cet horodatage spécifique, tout comme vous avez été utilisé pour faire dans Oracle: P>

ALTER TABLE [dbo].[TABLE] SET (SYSTEM_VERSIONING = OFF);  

ALTER TABLE [dbo].[TABLE] DROP PERIOD FOR SYSTEM_TIME;  

ALTER TABLE [dbo].[TABLE] DROP COLUMN [SysStartTime], [SysEndTime]; 


0 commentaires

0
votes

SQL Server 2016 introduit Tables alias Tables d'historique qui permet aux développeurs de interroger des données stockées dans une table de base de données dans le passé.

Je veux dire que les développeurs peuvent fournir des applications permettant aux utilisateurs d'afficher les données historiques d'une table ou la vue d'une table à un moment donné du passé


0 commentaires