OVH Cloud OVH Cloud

Time-out sur requête SQL

4 réponses
Avatar
Raphaël
Bonjour,

Je fais une requête de suppression sur une table depuis une appli vb.
Le problême, c'est que si la table est très lourde, j'ai un time-out à
l'exécution de la commande dans le programme vb.

Ma requête c'est "Delete From temp1" (je vidange une table temporaire).
La table contenait dernièrement plus d'un million de lignes sur 36
colonnes, en vidangeant depuis le serveur SQL, il a fallu 4 minutes pour
y arriver.

Quelle est la meilleure solution ?
* faire une requête stockée.
* faire un drop de la table, puis la reconstruire à chaque vidange.
* modifier un paramètre dans la chaîne de connexion

Merci de vos avis.


Raphaël

4 réponses

Avatar
Jean-Marc
"Raphaël" a écrit dans le message de
news:
Bonjour,

Je fais une requête de suppression sur une table depuis une appli vb.
Le problême, c'est que si la table est très lourde, j'ai un time-out à
l'exécution de la commande dans le programme vb.

Ma requête c'est "Delete From temp1" (je vidange une table temporaire).
La table contenait dernièrement plus d'un million de lignes sur 36
colonnes, en vidangeant depuis le serveur SQL, il a fallu 4 minutes pour
y arriver.

Quelle est la meilleure solution ?
* faire une requête stockée.
* faire un drop de la table, puis la reconstruire à chaque vidange.
* modifier un paramètre dans la chaîne de connexion



Hello,

DROP puis reconstruire, sans aucun doute.

jean-marc
Avatar
Jean-Pierre Thomasset
Salut,

Le drop est effectivement une bonne solution. Toutefois je ne sais pas si
cette commande existe sous SQL serveur, mais sous Oracle il y a une commande
tres pratique qui s'appele TRUNCATE.

A+,
JP.
"Jean-Marc" wrote in message
news:4124340d$0$3540$
"Raphaël" a écrit dans le message de
news:
> Bonjour,
>
> Je fais une requête de suppression sur une table depuis une appli vb.
> Le problême, c'est que si la table est très lourde, j'ai un time-out à
> l'exécution de la commande dans le programme vb.
>
> Ma requête c'est "Delete From temp1" (je vidange une table temporaire).
> La table contenait dernièrement plus d'un million de lignes sur 36
> colonnes, en vidangeant depuis le serveur SQL, il a fallu 4 minutes pour
> y arriver.
>
> Quelle est la meilleure solution ?
> * faire une requête stockée.
> * faire un drop de la table, puis la reconstruire à chaque vidange.
> * modifier un paramètre dans la chaîne de connexion
>
Hello,

DROP puis reconstruire, sans aucun doute.

jean-marc





Avatar
Jean
Bonjour,

le TRUNCATE est plus rapide que DELETE, mais les enregistrement ne vont pas
dans le logfile
Pour le problème de timeout tu peux augmenter le timeout de la requête avec
l'objet COMMAND
COMMAND.commandtimeout = 0 ou xxx secondes
Bon boulot
Jean

"Raphaël" a écrit dans le message de
news:
Bonjour,

Je fais une requête de suppression sur une table depuis une appli vb.
Le problême, c'est que si la table est très lourde, j'ai un time-out à
l'exécution de la commande dans le programme vb.

Ma requête c'est "Delete From temp1" (je vidange une table temporaire).
La table contenait dernièrement plus d'un million de lignes sur 36
colonnes, en vidangeant depuis le serveur SQL, il a fallu 4 minutes pour
y arriver.

Quelle est la meilleure solution ?
* faire une requête stockée.
* faire un drop de la table, puis la reconstruire à chaque vidange.
* modifier un paramètre dans la chaîne de connexion

Merci de vos avis.


Raphaël


Avatar
Raphaël
Bonjour,

Merci à tous pour vos renseignements.
Effectivement avec le truncate c'est mieux.
Le problème du logfile n'en étant pas un, je file changer ma requête.

Raphaël

"Jean" a écrit:
news:41246165$0$4154$:

Bonjour,

le TRUNCATE est plus rapide que DELETE, mais les enregistrement ne
vont pas dans le logfile
Pour le problème de timeout tu peux augmenter le timeout de la requête
avec l'objet COMMAND
COMMAND.commandtimeout = 0 ou xxx secondes
Bon boulot
Jean

"Raphaël" a écrit dans le message de
news:
Bonjour,

Je fais une requête de suppression sur une table depuis une appli vb.
Le problême, c'est que si la table est très lourde, j'ai un time-out
à l'exécution de la commande dans le programme vb.

Ma requête c'est "Delete From temp1" (je vidange une table
temporaire). La table contenait dernièrement plus d'un million de
lignes sur 36 colonnes, en vidangeant depuis le serveur SQL, il a
fallu 4 minutes pour y arriver.

Quelle est la meilleure solution ?
* faire une requête stockée.
* faire un drop de la table, puis la reconstruire à chaque vidange.
* modifier un paramètre dans la chaîne de connexion

Merci de vos avis.


Raphaël