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

MS SQL Server Discussion :

Réindexation - sql serveur 2000.


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut Réindexation - sql serveur 2000.
    Bonjour,

    Nous avons un site Aloes, dont certaines requêtes sql dépassent le time out de la base.

    1 - Existe t'il une méthode pour augmenter le time-out entre asp.net et sql serveur ? Cela dépannerait dans un premier temps, nous sommes tenus de répondre au plus vite.

    Je me suis proposé d'optimiser la requête afin qu'elle rentre dans le time out. :o))
    2 - Comme aucune réindexation n'a été effectué sur le serveur de production, je me suis proposé de lancer celle ci.
    Sur sql serveur 2005, il existe un plan de maintenance avec la fonction réindexer la base. Sur Sql serveur 2000, comment procéder-vous pour réindexer la totalité d'une base ?

    3 - Aprés la réindexation, je dois vérifier que l'ensemble des index de la requêtes sont bon pour réduire encore le temps de chargement. On verra ca apres...

    A+

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut indexation sql serveur 2000
    1 - Existe t'il une méthode pour augmenter le time-out entre asp.net et sql serveur ? Cela dépannerait dans un premier temps, nous sommes tenus de répondre au plus vite.

    2 - réindexation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    USE aloes
    go
    DECLARE @TableName varchar(255)
    DECLARE TableCursor CURSOR FORSELECT table_name FROM information_schema.tablesWHERE table_type = 'base table'
    OPEN TableCursor
    FETCH NEXT FROM TableCursor INTO @TableName
    WHILE @@FETCH_STATUS = 0
    BEGIN
    DBCC DBREINDEX(@TableName,' ',90)FETCH NEXT FROM TableCursor INTO @TableName
    END
    CLOSE TableCursor
    DEALLOCATE TableCursor
    go
    Exemple de requête à optimiser : 35 secondes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    declare @id_culture bigint
    declare @id_pays bigint
    declare @date_debut datetime
    declare @date_fin datetime
    set @id_culture = 2 
    set @id_pays = 1 
    set @date_debut ='01/01/2006'
    set @date_fin ='01/01/2007'
    select l.id_laboratoire,count(a.id_analyse)as nb_analyses 
    from fn_analyse_validee_datee_culture_multi(@id_culture) a innerjoin bulletin_analyse ba on a.id_bulletin = ba.id_bulletin 
    innerjoin laboratoire l on ba.id_laboratoire = l.id_laboratoire 
    innerjoin(selectdistinct id_analyse from partie_analyse where detection = 1) pa on a.id_analyse = pa.id_analyse where a.id_analyse notin(selectdistinct id_analyse from partie_analyse where qte_residu > dbo.fn_lmr_partie(id_partie, @id_pays))and date_reception between @date_debut and @date_fin 
    groupby l.id_laboratoire

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    essayes un truc dans ce style

    Code : 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
    declare @id_culture bigint
    declare @id_pays bigint
    declare @date_debut datetime
    declare @date_fin datetime
    set @id_culture = 2 
    set @id_pays = 1 
    set @date_debut ='01/01/2006'
    set @date_fin ='01/01/2007'
     
    create table #analyse_culture
    (id_analyse int)
     
    create index idx_an on #analyse_culture (id_analyse)
     
    insert into #analyse_culture
    select id_analyse from fn_analyse_validee_datee_culture_multi(@id_culture)
     
    create table #analyse_detection
    (id_analyse int)
     
    insert into #analyse_detection
    select distinct id_analyse from partie_analyse where detection = 1
     
    create index idx_cu on #analyse_detection (id_analyse)
     
    delete #analyse_detection a
    from partie_analyse b
    where 
    a.id_analyse=b.id_analyse
    and qte_residu > dbo.fn_lmr_partie(id_partie, @id_pays))
    and date_reception between @date_debut and @date_fin
     
    select l.id_laboratoire,count(a.id_analyse)as nb_analyses 
    from #analyse a 
    inner join bulletin_analyse ba on a.id_bulletin = ba.id_bulletin 
    inner join laboratoire l on ba.id_laboratoire = l.id_laboratoire 
    inner join #analyse_detection pa on a.id_analyse = pa.id_analyse 
    group by l.id_laboratoire

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut merci serge.
    salut,

    comme j'étais pressé de donner une réponse... le site buggue actuellement... j'ai modifié le timeout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim cmd As SqlCommand = SConnAloes.CreateCommand()
    cmd.CommandText = SqlAnalyseInfLMR
    cmd.CommandType = CommandType.Text
    cmd.CommandTimeout = 300000
    Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
    da.Fill(DTAnalyseInfLMR)
    Maintenant, je vais prendre le temps de réduire le temps de la requete.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut sql.
    DELETE #analyse_detection a
    FROM partie_analyse b
    WHERE
    a
    .id_analyse=b.id_analyse
    AND qte_residu > dbo.fn_lmr_partie(id_partie, @id_pays))
    AND
    date_reception BETWEEN @date_debut AND @date_fin
    est ce possible ?

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    oui

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

Discussions similaires

  1. [debutant]compatibilite msde sql serveur 2000
    Par ChristopheOce dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/01/2006, 08h39
  2. [MS SQL Serveur 2000] Problème sauvegarde restauration
    Par m-mas dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/11/2005, 12h25
  3. [debutant]Plan de maintenance sous sql serveur 2000
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/05/2005, 12h18
  4. Taille Maxi pour un SQL SERVEUR 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/07/2003, 09h37
  5. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24

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