Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id de Z
et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller vite
et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id de Z
et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller vite
et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id de Z
et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller vite
et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:uLYWBpcJKHA.4900@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que j'ai
verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id de
Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que j'ai
verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:uLYWBpcJKHA.4900@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id de
Z et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que j'ai
verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id de
Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%23uPoq9hJKHA.4608@TK2MSFTNGP02.phx.gbl...
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:uLYWBpcJKHA.4900@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%23uPoq9hJKHA.4608@TK2MSFTNGP02.phx.gbl...
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:uLYWBpcJKHA.4900@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui es
acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui es
acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:%23uPoq9hJKHA.4608@TK2MSFTNGP02.phx.gbl...
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:uLYWBpcJKHA.4900@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui es
acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
c'est une table recontruite a chaque fois index recreer etc...
car c'est pour un travail mensuel.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:et$J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce
qui es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose
que j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le
message de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
c'est une table recontruite a chaque fois index recreer etc...
car c'est pour un travail mensuel.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:et$WqqiJKHA.4168@TK2MSFTNGP05.phx.gbl...
J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce
qui es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%23uPoq9hJKHA.4608@TK2MSFTNGP02.phx.gbl...
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose
que j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le
message de news:uLYWBpcJKHA.4900@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
c'est une table recontruite a chaque fois index recreer etc...
car c'est pour un travail mensuel.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:et$J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce
qui es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose
que j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le
message de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le
id de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour
aller vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Tu peux copier le plan d'execution ?
Pour comprendre d'ou vient les ralentissements ?
Olivier,
Ch. a écrit :c'est une table recontruite a chaque fois index recreer etc...
car c'est pour un travail mensuel.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:et$J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Tu peux copier le plan d'execution ?
Pour comprendre d'ou vient les ralentissements ?
Olivier,
Ch. a écrit :
c'est une table recontruite a chaque fois index recreer etc...
car c'est pour un travail mensuel.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:et$WqqiJKHA.4168@TK2MSFTNGP05.phx.gbl...
J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :
ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:%23uPoq9hJKHA.4608@TK2MSFTNGP02.phx.gbl...
Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :
Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:uLYWBpcJKHA.4900@TK2MSFTNGP04.phx.gbl...
Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Tu peux copier le plan d'execution ?
Pour comprendre d'ou vient les ralentissements ?
Olivier,
Ch. a écrit :c'est une table recontruite a chaque fois index recreer etc...
car c'est pour un travail mensuel.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:et$J'oubliais
Est ce que ton plan de maintenance verifie les index toutes les nuits
et est ce que ta table est compacté ?
Olivier,
Ch. a écrit :ben on evite le in ou exist car sur des gros volume c'est pas cool...
mais effectivement c'est à tester
apres avoir changer la methode la derniere sort le tout en 1h30 ce qui
es acceptable sur ce genre.
mais j'aimerais quand meme comprendre pourquoi le delete est souvent
consommateur.
j'ai verifier les index ne sont pas en recalcul automatique des stats.
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message de
news:%Si tu essaies le mode standard SQL
avec un where exist ou in
Delete from Z where Exists(Select * from X where z.id = x.id )
Delete from Z where z.id in (Select x.id from X where z.id = x.id )
Est ce que cela change la rapidité ?
Olivier,
Ch. a écrit :Pour info pour faire ce genre de delete sur une jointure
sql server l'ecrit de cette maniere !
essais tu verras.
et oui bien sur qu'il y'a des index c'est bien la premiere chose que
j'ai verifié
c'est meme une cles primaire sur celle que je delete.
pas cool !!!
"OlivierH" <"nospam[contact]"@planitron.com> a écrit dans le message
de news:Bonjour,
Dans ton delete il y a une faute deux from
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
D'autre part si ton sql est bon est ce que tu as des index sur le id
de Z et X
Olivier,
Ch. a écrit :Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller
vite et eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80
Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller vite et
eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller vite et
eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id
Bonjour,
j'ai une table de 80 millions d'enregistrements
j'ai fais divers traitements dans des tables temporaires pour aller vite et
eviter de locker cette table.
la fin du process doit éliminer 1 million de lignes dans ces 80 Millions
seulement
autant le select va vite
select *
from XXX as X
inner join ZZZ as Z
on z.id = x.id
autan le delete est horriblement long, qu'est ce que j'ai raté ?
delete from Z
from XXX as X
inner join ZZZ as Z
on z.id = x.id