2010-01-09 2 views
0

J'essaie de comprendre comment développer le sur ma base de données. Par exemple. il y a des enregistrements dans la base de données:Le problème de la tâche de suppression automatique de la base de données

alt text http://img109.imageshack.us/img109/2962/datax.png

Ainsi, si le DateTime réel sur le serveur est 2010-01-09 12:12:12 le n ° 1 enregistrement doit être supprimé.

OK, mais quoi, si dans la base de données sont par ex. 1.000.000 d'enregistrements? Le serveur doit rechercher dans la base de données sur chaque seconde pour vérifier quelles lignes doivent être supprimées? Ce n'est pas efficace du tout.

Je suis totalement nouveau pour serveur Microsoft, donc je serais reconnaissant de tout type d'aide

Répondre

1

Il n'y a pas un temps de déclenchement basé dans le serveur SQL. Donc, vous devrez mettre en œuvre cela comme un travail ou par le biais d'un autre mécanisme prévu. Vous aurez probablement besoin d'un index dans la colonne StartDate (date de fin?) Pour que votre requête de suppression n'ait pas à effectuer une analyse de table complète pour trouver les données à supprimer.


Habituellement, vous n'effectuez pas réellement de suppressions toutes les secondes. Au lieu de cela, l'application doit être assez intelligente pour interroger la table de manière à éliminer ces enregistrements de son jeu de résultats. Ensuite, vous pouvez effectuer des suppressions paresseuses à un autre moment pour effectuer le nettoyage. Comme une fois par heure ou une fois par jour, etc.

Questions connexes