IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils SQL Server Discussion :

Bufferisation des écritures


Sujet :

Outils SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 182
    Par défaut Bufferisation des écritures
    Bonjour à tous.tes
    Concernant le fonctionnement de ma base, j'ai besoin de m'affranchir totalement des performances, tant de SQLServer au niveau software, que du serveur au niveau hardware.
    Afin d'éviter une réécriture trop lourde de mes appli Delphi, j'aimerais trouver un outils permettant de bufferiser les INSERT envoyées à SQLServer chaque seconde.
    Quelque soit le niveau d'occupation du serveur, aucune de ces écritures ne doit être perdue.

    La meilleure solution que je connaisse actuellement, est l'écriture de ces données dans un fichier csv, lui-même "purgé" par une appli envoyant les INSERT à SQLServer.
    Ce qui m'oblige à réécrire.

    Je me dis qu'il existe peut-être déjà un outil permettant de bufferiser ces écritures directement dans SQLServer avec un peu de chance...
    Cela parle t-il à quelqu'un ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Exécuter les INSERT de manière asynchrone plutôt que synchrone ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 182
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    SQL Server bufferise naturellement les écritures.
    Super, du coup ...
    Citation Envoyé par StringBuilder Voir le message
    Exécuter les INSERT de manière asynchrone plutôt que synchrone ?
    ...ce serait la solution

    Je vais fouiller la doc.
    Merci à tous.

    StringBuilder, tu devrais écrire un bouquin sur SQLServer

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    ...ce serait la solution
    A voir cependant si cela vaut le coup et s'il y a une bonne raison de le faire (par exemple utiliser Service Broker) car cela introduit une certaine complexité.

    ++

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Euh…

    Je pige pas.

    T'as un timeout de 1 seconde ???

    Si un SELECT effectue un LOCK (ce qui en soit n'est pas très naturel), les nouveaux INSERT sont mis en attente jusqu'à ce que le lock soit terminé…
    Avec un timeout raisonnablement long (par défaut ça doit être dans les 30 secondes) t'es pas censé aboutir à ce genre d'erreur.

    Et sinon, pourquoi ton SELECT lock les lignes/tables ? En a-t-il vraiment besoin ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 182
    Par défaut
    Attends, j'ai supprimé mon msg précédent trop tard.
    Je comprends ta question, je développe dans le msg suivant .

  7. #7
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Illustration de la mise en attente des INSERT sans pour autant que ça les plante…


  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 182
    Par défaut
    Mais si ça plante :

    Cannot perform the action, because the previous action is in progress.

    StringBuilder je regarde ce que tu m'envoies, ça me paraît très joli. Merci.

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par cestpasmoinonplus Voir le message
    Bonjour à tous.tes
    Concernant le fonctionnement de ma base, j'ai besoin de m'affranchir totalement des performances, tant de SQLServer au niveau software, que du serveur au niveau hardware.
    Afin d'éviter une réécriture trop lourde de mes appli Delphi, j'aimerais trouver un outils permettant de bufferiser les INSERT envoyées à SQLServer chaque seconde.
    Quelque soit le niveau d'occupation du serveur, aucune de ces écritures ne doit être perdue.
    C'est toujours le cas, quelque soit la manière de travailler avec SQL Server

    La meilleure solution que je connaisse actuellement, est l'écriture de ces données dans un fichier csv, lui-même "purgé" par une appli envoyant les INSERT à SQLServer.
    L'écriture dans un fichier est beaucoup moins fiable (par de journalisation, donc pas de reprise en cas d'incident) et beaucoup moins rapide que ce que fera SQL Server
    Ce qui m'oblige à réécrire.

    Je me dis qu'il existe peut-être déjà un outil permettant de bufferiser ces écritures directement dans SQLServer avec un peu de chance...
    Cela parle t-il à quelqu'un ?

    Merci d'avance.
    SQL Server bufferise naturellement les écritures.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de connexion, Bufferisation des rêquetes ?
    Par Bob7554 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/11/2007, 21h25
  2. Réponses: 3
    Dernier message: 20/05/2007, 21h35
  3. Quelques questions sur des écritures en perl
    Par Premium dans le forum Langage
    Réponses: 4
    Dernier message: 05/12/2006, 23h44
  4. [winpcap] Bufferisation des données capturées
    Par funtix dans le forum Développement
    Réponses: 4
    Dernier message: 07/09/2006, 20h24
  5. [CSS] Explication des écriture
    Par Yoshio dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/08/2006, 19h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo