Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Med Bouchenafa
Il faut le faire en plusieurs étapes Par exemple, SET ROWCOUNT 1000000 --faire 25 fois UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3)) SET ROWCOUNT 0
-- Bien cordialement Med Bouchenafa
"Psa555" a écrit dans le message de news:
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Il faut le faire en plusieurs étapes
Par exemple,
SET ROWCOUNT 1000000
--faire 25 fois
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
SET ROWCOUNT 0
--
Bien cordialement
Med Bouchenafa
"Psa555" <Psa555@discussions.microsoft.com> a écrit dans le message de news:
00605A71-4D39-4B55-B738-387CC2C4EAB5@microsoft.com...
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16
heures.
Ma question :
Avez vous des trucs afin de faire ce genre d'Update dans des temps plus
respectable ?
Il faut le faire en plusieurs étapes Par exemple, SET ROWCOUNT 1000000 --faire 25 fois UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3)) SET ROWCOUNT 0
-- Bien cordialement Med Bouchenafa
"Psa555" a écrit dans le message de news:
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Gilles TOURREAU
Psa555 avait écrit le 10/05/2006 :
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Si t'utilises une base de données H/F Classic, tes données sont sur le serveur et que tu executes ce UPDATE sur un poste client je te conseille vivement de le faire plustot directement sur le serveur !
En effet, si tu fais un UPDATE réseau, Windev va sans cesse faire des aller/retour sur le réseau pour lire/modifier/ecrire les enregistrements
3 solutions :
1/Soit, tu executes ton UPDATE sur du TSE (Ce que je fais pour des traitements longs)
2/Soit, tu fais une appli autonome sur le serveur qui communique via les sockets (ou ce que tu veux...) et qui execute le UPDATE...
3/Acheter un disque dur et/ou un PC plus performant...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Psa555 avait écrit le 10/05/2006 :
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16
heures.
Ma question :
Avez vous des trucs afin de faire ce genre d'Update dans des temps plus
respectable ?
Si t'utilises une base de données H/F Classic, tes données sont sur le
serveur et que tu executes ce UPDATE sur un poste client je te
conseille vivement de le faire plustot directement sur le serveur !
En effet, si tu fais un UPDATE réseau, Windev va sans cesse faire des
aller/retour sur le réseau pour lire/modifier/ecrire les
enregistrements
3 solutions :
1/Soit, tu executes ton UPDATE sur du TSE (Ce que je fais pour des
traitements longs)
2/Soit, tu fais une appli autonome sur le serveur qui communique via
les sockets (ou ce que tu veux...) et qui execute le UPDATE...
3/Acheter un disque dur et/ou un PC plus performant...
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Si t'utilises une base de données H/F Classic, tes données sont sur le serveur et que tu executes ce UPDATE sur un poste client je te conseille vivement de le faire plustot directement sur le serveur !
En effet, si tu fais un UPDATE réseau, Windev va sans cesse faire des aller/retour sur le réseau pour lire/modifier/ecrire les enregistrements
3 solutions :
1/Soit, tu executes ton UPDATE sur du TSE (Ce que je fais pour des traitements longs)
2/Soit, tu fais une appli autonome sur le serveur qui communique via les sockets (ou ce que tu veux...) et qui execute le UPDATE...
3/Acheter un disque dur et/ou un PC plus performant...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Gilles TOURREAU
Gilles TOURREAU a exposé le 10/05/2006 :
Psa555 avait écrit le 10/05/2006 :
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Si t'utilises une base de données H/F Classic, tes données sont sur le serveur et que tu executes ce UPDATE sur un poste client je te conseille vivement de le faire plustot directement sur le serveur !
En effet, si tu fais un UPDATE réseau, Windev va sans cesse faire des aller/retour sur le réseau pour lire/modifier/ecrire les enregistrements
3 solutions :
1/Soit, tu executes ton UPDATE sur du TSE (Ce que je fais pour des traitements longs)
2/Soit, tu fais une appli autonome sur le serveur qui communique via les sockets (ou ce que tu veux...) et qui execute le UPDATE...
3/Acheter un disque dur et/ou un PC plus performant...
Cordialement
Mille excuses !
Je me suis planté de Forum... J'ai cru être sur le forum windev...
Encore désolé...
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Gilles TOURREAU a exposé le 10/05/2006 :
Psa555 avait écrit le 10/05/2006 :
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16
heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des
temps plus respectable ?
Si t'utilises une base de données H/F Classic, tes données sont sur le
serveur et que tu executes ce UPDATE sur un poste client je te conseille
vivement de le faire plustot directement sur le serveur !
En effet, si tu fais un UPDATE réseau, Windev va sans cesse faire des
aller/retour sur le réseau pour lire/modifier/ecrire les enregistrements
3 solutions :
1/Soit, tu executes ton UPDATE sur du TSE (Ce que je fais pour des
traitements longs)
2/Soit, tu fais une appli autonome sur le serveur qui communique via les
sockets (ou ce que tu veux...) et qui execute le UPDATE...
3/Acheter un disque dur et/ou un PC plus performant...
Cordialement
Mille excuses !
Je me suis planté de Forum... J'ai cru être sur le forum windev...
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Si t'utilises une base de données H/F Classic, tes données sont sur le serveur et que tu executes ce UPDATE sur un poste client je te conseille vivement de le faire plustot directement sur le serveur !
En effet, si tu fais un UPDATE réseau, Windev va sans cesse faire des aller/retour sur le réseau pour lire/modifier/ecrire les enregistrements
3 solutions :
1/Soit, tu executes ton UPDATE sur du TSE (Ce que je fais pour des traitements longs)
2/Soit, tu fais une appli autonome sur le serveur qui communique via les sockets (ou ce que tu veux...) et qui execute le UPDATE...
3/Acheter un disque dur et/ou un PC plus performant...
Cordialement
Mille excuses !
Je me suis planté de Forum... J'ai cru être sur le forum windev...
Encore désolé...
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
bruno reiter
Tu as peut etre intérêt à créer un index sur ta PK+ la col à modifier, puis à faire l'update par tranche avec un where sur la PK
br
"Psa555" a écrit dans le message de news:
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Tu as peut etre intérêt à créer un index sur ta PK+ la col à modifier, puis
à faire l'update par tranche avec un where sur la PK
br
"Psa555" <Psa555@discussions.microsoft.com> a écrit dans le message de news:
00605A71-4D39-4B55-B738-387CC2C4EAB5@microsoft.com...
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16
heures.
Ma question :
Avez vous des trucs afin de faire ce genre d'Update dans des temps plus
respectable ?
Tu as peut etre intérêt à créer un index sur ta PK+ la col à modifier, puis à faire l'update par tranche avec un where sur la PK
br
"Psa555" a écrit dans le message de news:
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
bruno reiter
j'ai répondu vite et bête : c'est juste : faire l'update par tranche avec un where sur la PK surtout pour limiter le temps de lock et de rollback éventuel
br
"bruno reiter" a écrit dans le message de news:
Tu as peut etre intérêt à créer un index sur ta PK+ la col à modifier, puis à faire l'update par tranche avec un where sur la PK
br
"Psa555" a écrit dans le message de news:
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
j'ai répondu vite et bête :
c'est juste : faire l'update par tranche avec un where sur la PK
surtout pour limiter le temps de lock et de rollback éventuel
br
"bruno reiter" <delete-this.br33@terra.com.br> a écrit dans le message de
news: um9x8qGdGHA.3364@TK2MSFTNGP05.phx.gbl...
Tu as peut etre intérêt à créer un index sur ta PK+ la col à modifier,
puis à faire l'update par tranche avec un where sur la PK
br
"Psa555" <Psa555@discussions.microsoft.com> a écrit dans le message de
news: 00605A71-4D39-4B55-B738-387CC2C4EAB5@microsoft.com...
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16
heures.
Ma question :
Avez vous des trucs afin de faire ce genre d'Update dans des temps plus
respectable ?
j'ai répondu vite et bête : c'est juste : faire l'update par tranche avec un where sur la PK surtout pour limiter le temps de lock et de rollback éventuel
br
"bruno reiter" a écrit dans le message de news:
Tu as peut etre intérêt à créer un index sur ta PK+ la col à modifier, puis à faire l'update par tranche avec un where sur la PK
br
"Psa555" a écrit dans le message de news:
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
dominique
Salut,
1. Si champ1 est un char de 3, tu peux aussi économiser le substring par
SET ANSI_WARNINGS OFF go UPDATE <table> SET <champ1> = champ2 go
2. Selon tes contraintes, tu peux peut-être aussi externaliser l'update (mesurer le coût de restauration des contraintes!):
vire les contraintes bcp out truncate ... tu travailles sur le fichier avec awk, assimilé ou moulinette spécifique. bcp in restaure les contraintes
Bon courage!
"Psa555" a écrit :
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16 heures.
Ma question : Avez vous des trucs afin de faire ce genre d'Update dans des temps plus respectable ?
Salut,
1. Si champ1 est un char de 3, tu peux aussi économiser le substring par
SET ANSI_WARNINGS OFF
go
UPDATE <table> SET <champ1> = champ2
go
2. Selon tes contraintes, tu peux peut-être aussi externaliser l'update
(mesurer le coût de restauration des contraintes!):
vire les contraintes
bcp out
truncate
... tu travailles sur le fichier avec awk, assimilé ou moulinette spécifique.
bcp in
restaure les contraintes
Bon courage!
"Psa555" a écrit :
Bonjour,
J'ai a faire ce Update sur une table de 25 millions d'enregistrement.
UPDATE <table> SET <champ1> = SUBSTRING( champ2 , 1,3))
Note : les champs touchés ne sont pas dans des index ou dans les clés.
La problèmatique c'est le temp que ca prend pour s'éxécuter plus de 16
heures.
Ma question :
Avez vous des trucs afin de faire ce genre d'Update dans des temps plus
respectable ?