2009-02-19 11 views
1

Cela peut sembler une question stupide, mais je suis dans une situation tête-> mur en ce moment.SQL Server 2005: vérification de la suppression d'enregistrements aléatoires

Je travaille sur une application ERP massive dans laquelle la base de données SQL Server 2005 est mise à jour par plusieurs applications disparates. J'essaie de comprendre d'où proviennent les suppressions d'une table particulière.

J'ai essayé d'utiliser le profileur mais je ne suis pas capable de filtrer les types d'événements assez pour pouvoir identifier le SP errant parce qu'il y a tant de hits à la base de données chaque seconde de divers quartiers. En outre, le profileur semble plus orienté vers la recherche de modifications DDL ou d'actions de type Object DROP.

J'essaie simplement de répondre à la question: What Proc. ou une requête SQL a entraîné la suppression d'un enregistrement de la table X?

Quel outil dois-je utiliser? J'espérais éviter quelque chose comme Trigger based Auditing. Ou le profileur est-il le meilleur outil pour ce type d'enquête? Ou les outils tiers sont-ils le seul recours?

S'il vous plaît fournir des liens utiles que vous pouvez parce que je suis relativement peu familier avec ce sujet.

Répondre

1

trouver le coupable avec profileur pourrait être comme trouver une aiguille dans une botte de foin, en particulier sur un système occupé; si vous ne pouvez pas le trouver avec des filtres comme le suggère edosoft, essayez de minimiser le bruit en éliminant les déclarations avec écritures = 0, filtrez par nom d'application, filtrez par textdata pas comme '% select%'; vous devriez être capable de le réduire.

Si vous êtes vraiment désespéré, vous pouvez refuser l'autorisation de suppression à tous les utilisateurs sur la table et attendre que le téléphone sonne.

Vous pouvez également exécuter SELECT COUNT occasionnel (*) sur la table dans une table de travail avec horodatage et essayer de corréler les baisses de nombre d'enregistrements à d'autres activités.

1

Vous pouvez utiliser SQL Profiler pour cela, mais vous devez filtrer les résultats. Pour surveiller les instructions DELETE, sélectionnez les événements "RPC: Starting" et "SP: Starting" et appliquez un filtre sur la colonne TextData: "TextData LIKE '% DELETE% FROM%'".

-Edoode

Questions connexes