2010-11-11 20 views
1

Actuellement, je voudrais fournir cela comme une option à l'utilisateur lors du stockage des données dans la base de données.Remplir la base de données SQL à partir du fichier texte sur un thread d'arrière-plan en permanence

Enregistrez les données dans un fichier et utilisez un thread d'arrière-plan pour lire les données du fichier texte sur le serveur SQL.

Flux de mon programme: - Un flux de données provenant d'un serveur en permanence (100 par seconde). - souhaitez stocker les données dans un fichier texte et utiliser le fil d'arrière-plan pour copier les données du fichier texte dans la base de données SQL en permanence en tant qu'autre option utilisateur.

Cela a-t-il déjà été fait?

Cheers.

+4

Je suis désolé que votre question soit un peu confuse. Voulez-vous autoriser les utilisateurs à enregistrer des données de SQL vers des fichiers texte, ou le contraire? et que voulez-vous dire par 100 par seconde? 100 fichiers? 100 lignes? s'il vous plaît expliquer mieux. –

Répondre

1

Votre question est en effet un peu confuse.

Je devine que vous dire que:

  • 100 lignes par seconde provenir d'une certaine source ou serveur
  • Une option pour l'utilisateur est la mise en cache textfile (par exemple, les entrées du journal.): La les lignes sont stockées dans un fichier texte et périodiquement une copie incrémentielle du contenu du fichier texte dans (une) table (s) SQL Server est effectuée.
  • Une autre option pour l'utilisateur est insertion directe: les données sont stockées directement dans la base de données au fur et à mesure, sans aucun fichier texte.

Ai-je raison?

Si oui, alors vous devriez faire quelque chose dans les lignes de:

  • Créer un déclencheur sur une action INSERT à la table
  • Dans ce déclencheur, vérifiez que l'utilisateur insère. Si l'utilisateur a désactivé la mise en cache des fichiers texte , l'insertion peut continuer. Sinon, les données sont redirigées vers un fichier texte (ou une table de mise en cache)
  • Créez une procédure stockée qui vérifie la présence de nouvelles données dans la table de mise en cache ou dans le fichier texte, copie les nouvelles données dans la table réelle et supprime les données mises en cache.
  • Créer un travail de l'Agent SQL Server qui passe au-dessus procédure stockée chaque minute, heure, jour ...

Depuis l'interface de T-SQL textfiles est pas très souple, je recommande d'utiliser une table de mise en cache au lieu. Pourquoi un fichier texte?

Et d'ailleurs, pourquoi cache les données avant de les insérer dans la table? Nous pourrions peut-être proposer une meilleure solution, si vous expliquez le contexte de votre question.

+0

Oui .. Vous avez la bonne question. Désolé pour la confusion. Existe-t-il des exemples de comment je peux faire cela? Je suis très nouveau à SQL en particulier les déclencheurs. Cela ne me dérangerait pas d'utiliser la table de mise en cache si elle est plus efficace. Merci – ove