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

  1. #21
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Une autre solution est d'utiliser des verrous optimistes en activant le READ COMMITTED SNAPSHOT au niveau de la base....

    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/ * * * * *

  2. #22
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Voici en quelques minutes un programme C# illustrant ce qui t'arrive.

    Rien d'anormal.
    C'est ton programme qui gère mal le lock.

    Soit tu fais un ExecuteNonQueryAsync() avec tout ce que ça implique, soit ton timer lance un thread dédié à chaque insert (qui utilise sa propre connexion et sa propre commande) sans attendre la fin du thread.
    On ne jouit bien que de ce qu’on partage.

  3. #23
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    C'est encore plus simple que je ne pensais.

    Remplace juste "ExecuteNonQuery" par "ExecuteNonQueryAsync" (et rien d'autre).

    Le timer ne se met donc plus en pause, car n'attends pas la fin du INSERT pour rendre la main.
    Et dès que le verrou est libéré, tous les INSERT passent bien tranquillement. Et ceci alors même que j'utilise la même connexion et le même objet command !

    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Windows.Forms;
     
    namespace TestTimerSQL
    {
        public partial class Form1 : Form
        {
            SqlConnection cnx = new SqlConnection("Server=.;Database=SandBox;Trusted_Connection=True;");
            SqlCommand cmd;
            SqlParameter p;
     
            public Form1()
            {
                InitializeComponent();
     
                cmd = cnx.CreateCommand();
                cmd.CommandText = "insert into matablequivabien (nom) values (@nom)";
                p = cmd.Parameters.Add("@nom", SqlDbType.VarChar);
                cnx.Open();
                timer1.Interval = 1000;
            }
     
            private void timer1_Tick(object sender, EventArgs e)
            {
                p.Value = DateTime.Now.ToString("yyyyMMdd HH:mm:ss fff");
                cmd.ExecuteNonQueryAsync();
                textBox1.Text += string.Concat(p.Value, "\r\n");
            }
     
            private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                timer1.Enabled = checkBox1.Checked;
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
            }
     
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (timer1.Enabled)
                {
                    timer1.Stop();
                }
                cnx.Close();
            }
        }
    }

    Attention cependant : s'il se produit des erreurs lors des INSERT, ou si l'application est fermée avant que le lock ne rendre la main, tu vas avoir des données perdues !
    (mais bon, ça sera pas pire qu'actuellement)
    On ne jouit bien que de ce qu’on partage.

  4. #24
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Nous sommes bien d'accord, ce n'est pas SQLServer qui envoi ce message.
    Mon problème est que le SELECT bloque les écritures, et donc mon applicatif qui attend une réponse du serveur avant d'envoyer une nouvelle demande d'INSERT, en synchrone, n'envoie ce nouvel INSERT que plusieurs secondes plus tard.
    Et, donc, en asynchrone plante avec le message en question.
    Donc l'assynchrone n'est pas la solution.

    Je voudrais que mon SELECT ne bloque pas les écritures.
    Pas changer assiettes pour fromage.

  5. #25
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    C'est encore plus simple que je ne pensais.

    Remplace juste "ExecuteNonQuery" par "ExecuteNonQueryAsync" (et rien d'autre).

    Le timer ne se met donc plus en pause, car n'attends pas la fin du INSERT pour rendre la main.
    Et dès que le verrou est libéré, tous les INSERT passent bien tranquillement. Et ceci alors même que j'utilise la même connexion et le même objet command !
    Non mais en fait, j'ai déjà essayé. Ca lance le query en asynchrone. Sauf que mon appli le fait en Delphi avec les composants Firedac.
    Ca ne résout pas mon problème.
    Je me retrouve dans le cas du plantage avec le msg pré-cité.

    Attention, il faut que le SELECT dure plus longtemps que la fréquence d'écriture, d'envoi des INSERT, pour mettre le problème en lumière.
    Pas changer assiettes pour fromage.

  6. #26
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Une autre solution est d'utiliser des verrous optimistes en activant le READ COMMITTED SNAPSHOT au niveau de la base....

    A +
    Déjà essayé SNAPSHOT et Cie. Résultat absolument identique.
    Pas changer assiettes pour fromage.

  7. #27
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par cestpasmoinonplus Voir le message
    Déjà essayé SNAPSHOT et Cie. Résultat absolument identique.
    Donc, c'est bien votre code qui est foireux.... Delphi il y a 25 ans que je l'ai abandonné. Trop limité, pas adapté aux SGBDR modernes....

    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/ * * * * *

  8. #28
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par cestpasmoinonplus Voir le message
    Non mais en fait, j'ai déjà essayé. Ca lance le query en asynchrone. Sauf que mon appli le fait en Delphi avec les composants Firedac.
    Ca ne résout pas mon problème.
    Je me retrouve dans le cas du plantage avec le msg pré-cité.
    A mon avis, si ça plante, c'est parce que comme moi, tu utilises la même connexion et probablement aussi la même commande.
    Utilise une connexion dédiée et une commande dédiée à chaque INSERT.

    Avec le pooling de connexion côté SQL Server ça ne changera rien aux performances, mais devrai éviter à Firedac de se prendre les pieds dans le tapis.

    Accessoirement, SQLPro a tout à fait raison à propos de Delphi : c'est (était ?) un très bon langage pour apprendre, comme le Pascal ou Ada.
    Mais il est aussi complètement dépassé à l'heure actuelle.
    On ne jouit bien que de ce qu’on partage.

  9. #29
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    A mon avis, si ça plante, c'est parce que comme moi, tu utilises la même connexion et probablement aussi la même commande.
    Utilise une connexion dédiée et une commande dédiée à chaque INSERT.
    C'est déjà le cas.

    Citation Envoyé par StringBuilder Voir le message
    Accessoirement, SQLPro a tout à fait raison à propos de Delphi : c'est (était ?) un très bon langage pour apprendre, comme le Pascal ou Ada.
    Mais il est aussi complètement dépassé à l'heure actuelle.
    Delphi n'est pas un langage mais un IDE qui a continué à faire progresser le langage Pascal objet sous-jacent.
    Nous travaillons avec Delphi 10 Berlin qui est à la pointe de la pointe
    Pas changer assiettes pour fromage.

  10. #30
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Par contre, il est possible que le problème vienne de la façon d'utiliser les composants. C'est pour ça que j'ai essayé deux collections différentes de composants. Le résultat est identique.
    De toute façon je lance le SELECT dans SQLServer Studio avec l'isolation SNAPSHOT.
    Il ne devrait donc pas bloquer les écritures.
    Pas changer assiettes pour fromage.

  11. #31
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Delphi il y a 25 ans que je l'ai abandonné. Trop limité, pas adapté aux SGBDR modernes....

    A +
    Tu m'étonnes ! Delphi 2 ou 1 ?
    Pas changer assiettes pour fromage.

  12. #32
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Je voulais envoyer "une démo" mais ça ne sert à rien, puisqu'il faut au-moins une table avec 17 millions de lignes.
    Pas changer assiettes pour fromage.

  13. #33
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Voici en quelques minutes un programme C# illustrant ce qui t'arrive.

    Rien d'anormal.
    C'est ton programme qui gère mal le lock.

    Soit tu fais un ExecuteNonQueryAsync() avec tout ce que ça implique, soit ton timer lance un thread dédié à chaque insert (qui utilise sa propre connexion et sa propre commande) sans attendre la fin du thread.
    J'ai bien re-regardé ta vidéo StringBuilder, et justement, ça démontre que c'est mon problème qui n'est pas compris :
    En fait tu le prends à l'inverse :
    1- tu bloques la table pour faire freezer les écritures. (c'est normal)
    2- ta requête sur la table non lockée est instantanée, et ne feeze donc pas les écritures. (c'est normal aussi)
    Et il n'y a donc pas de problème, je suis d'accord.

    Mon problème :
    1- si je bloque la table, ça freeze les écritures. (c'est normal)
    2- ma requête sur la table non lockée dure plus de 10 secondes, et feeze les écritures. (je ne sais pas si c'est normal, mais ça m'embête )

    Du coup, je me demade s'il n'y aurait pas une limite en nombre de lignes dans une table au-delà de laquelle SQLServer ne peut plus assurer les SELECT normalement.
    Pas changer assiettes pour fromage.

  14. #34
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Euh, la limite doit être de l'ordre de quelques milliards de milliards... probablement plus.

    Soit la requête est très mal optimisée.
    Soit les index sont très mal placés.
    Soit la requête fait vraiment des calculs trop complexes.

    Mais imagine quand tu vas sur le site des impôts, les formules de calcul, tout ça. Ben quand tu remplis ta déclaration, le calcul de l'estimation est instantané, et pourtant y'a quelques dizaines de million de lignes, rien que dans la table des utilisateurs...
    On ne jouit bien que de ce qu’on partage.

  15. #35
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Je me pose aussi des questions de ce genre, mais ça n'explique pas le problème de fond. En SNAPSHOT, le SELECT ne devrait pas bloquer les écritures.
    Demain, je vais nettoyer la table pour voir à partir de quel seuil, j'ai (ou pas) le fonctionnement attendu.
    Pas changer assiettes pour fromage.

  16. #36
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par cestpasmoinonplus Voir le message
    Tu m'étonnes ! Delphi 2 ou 1 ?
    1 et 2 du temps de Borland.... J'étais même rédac chef de Delphi News avec notre ami Yan Hiff qui nous a quitté bien jeune !

    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/ * * * * *

  17. #37
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    1 et 2 du temps de Borland.... J'étais même rédac chef de Delphi News avec notre ami Yan Hiff qui nous a quitté bien jeune !

    A +
    Ok
    Moi j'ai laissé tombé Cobol CICS pour Delphi 2 en 1997. Et depuis je n'en suis jamais sorti.
    Il y a eu des hauts et des bas, mais Embarcadero semble avoir redressé la barre technique, même si le côté commercial est devenu totalement moisi.
    Pas changer assiettes pour fromage.

  18. #38
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Euh, la limite doit être de l'ordre de quelques milliards de milliards... probablement plus.

    Soit la requête est très mal optimisée.
    Soit les index sont très mal placés.
    Soit la requête fait vraiment des calculs trop complexes.

    Mais imagine quand tu vas sur le site des impôts, les formules de calcul, tout ça. Ben quand tu remplis ta déclaration, le calcul de l'estimation est instantané, et pourtant y'a quelques dizaines de million de lignes, rien que dans la table des utilisateurs...
    Oui, mais ils n'ont pas la contrainte d'écrire 1 ligne chaque seconde.
    Pas changer assiettes pour fromage.

  19. #39
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    est-ce qu'on peut voir la tête de la requête SELECT dont il est question ?

  20. #40
    Membre du Club
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Janvier 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    est-ce qu'on peut voir la tête de la requête SELECT dont il est question ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
    BEGIN TRANSACTION;
    SELECT *
    FROM TABLE_NAME WITH (INDEX(Index_TABLE_NAME_id_TIME))  --index sur les 2 premiers champs id et TIME
    WHERE TIME BETWEEN '2019-01-10 00:00:00' AND '2019-01-10 23:59:59' 
    ORDER BY id, TIME ASC  
    ;
    COMMIT TRANSACTION
    Cette requête prend 20 secondes sur une table de 4,7 millions de lignes.
    Soit prêt de 2 mois d'écritures.

    Il y a 4 autres tables remplies dans les mêmes conditions.
    Le SELECT ci-dessus freeze les écritures dans les 5 tables.

    Et le résultat des freezes dans les 5 tables (sachant que c'est un exemple portant sur des tables de 4,7 Mega lig et non sur 17,4 Mega lignes qui donne des résultats bien plus problématiques) :Pièce jointe 452423
    Pas changer assiettes pour fromage.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

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