borrado de un registro

07/02/2006 - 11:40 por Ricardo Escudero | Informe spam
tengo la tabla A y la tabla B relacionadas
en la tabla A tengo 260.000 registros
y en la B 1.500.000 registros
la relacion es FK_B_A
donde B.campo01 y B.campo02 son claves externas a los campos A.campo01 y
A.campo02
es decir:

ALTER TABLE [dbo].[B] ADD
CONSTRAINT [FK_B_A] FOREIGN KEY
(
[campo01],
[campo02]
) REFERENCES [dbo].[A] (
[campo01],
[campo02]
)

cuando intento borrar un registro de A , me tarda unos 14 minutos
si deshabilito la relacion me tarda un minuto
esto en otra base de datos con las mismas tablas y la misma relacion
pero con 543.000 resgistros en A y 195.000 registros en B
me tarda apenas un minuto

¿como puedo mejorar el borrado?
¿que puede estar ocurriendo?

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Maxi
07/02/2006 - 13:19 | Informe spam
Hola, revisa que tengas indices sobre los campos que hacen la relacion.

Luego revisa que no existan triggers que esten haciendo alguna operacion que
haga demorar todo


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Ricardo Escudero" escribió en el mensaje
news:
tengo la tabla A y la tabla B relacionadas
en la tabla A tengo 260.000 registros
y en la B 1.500.000 registros
la relacion es FK_B_A
donde B.campo01 y B.campo02 son claves externas a los campos A.campo01 y
A.campo02
es decir:

ALTER TABLE [dbo].[B] ADD
CONSTRAINT [FK_B_A] FOREIGN KEY
(
[campo01],
[campo02]
) REFERENCES [dbo].[A] (
[campo01],
[campo02]
)

cuando intento borrar un registro de A , me tarda unos 14 minutos
si deshabilito la relacion me tarda un minuto
esto en otra base de datos con las mismas tablas y la misma relacion
pero con 543.000 resgistros en A y 195.000 registros en B
me tarda apenas un minuto

¿como puedo mejorar el borrado?
¿que puede estar ocurriendo?

Muchas gracias

Respuesta Responder a este mensaje
#2 Ricardo Escudero
07/02/2006 - 13:56 | Informe spam
existian triggers, pero aun quitandolos , salen los mismos tiempos.

"Maxi" escribió en el mensaje
news:%23%23jsiC%
Hola, revisa que tengas indices sobre los campos que hacen la relacion.

Luego revisa que no existan triggers que esten haciendo alguna operacion
que haga demorar todo


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Ricardo Escudero" escribió en el mensaje
news:
tengo la tabla A y la tabla B relacionadas
en la tabla A tengo 260.000 registros
y en la B 1.500.000 registros
la relacion es FK_B_A
donde B.campo01 y B.campo02 son claves externas a los campos A.campo01 y
A.campo02
es decir:

ALTER TABLE [dbo].[B] ADD
CONSTRAINT [FK_B_A] FOREIGN KEY
(
[campo01],
[campo02]
) REFERENCES [dbo].[A] (
[campo01],
[campo02]
)

cuando intento borrar un registro de A , me tarda unos 14 minutos
si deshabilito la relacion me tarda un minuto
esto en otra base de datos con las mismas tablas y la misma relacion
pero con 543.000 resgistros en A y 195.000 registros en B
me tarda apenas un minuto

¿como puedo mejorar el borrado?
¿que puede estar ocurriendo?

Muchas gracias





Respuesta Responder a este mensaje
#3 Miguel Egea
07/02/2006 - 15:05 | Informe spam
como dice maxi revisa la política de índices no de la tabla que estás
borrando sino de la tabla refernciada por la FK, ahí puede tener esa caida
de rendimiento.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Ricardo Escudero" wrote in message
news:ewPw5X%
existian triggers, pero aun quitandolos , salen los mismos tiempos.

"Maxi" escribió en el mensaje
news:%23%23jsiC%
Hola, revisa que tengas indices sobre los campos que hacen la relacion.

Luego revisa que no existan triggers que esten haciendo alguna operacion
que haga demorar todo


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Ricardo Escudero" escribió en el mensaje
news:
tengo la tabla A y la tabla B relacionadas
en la tabla A tengo 260.000 registros
y en la B 1.500.000 registros
la relacion es FK_B_A
donde B.campo01 y B.campo02 son claves externas a los campos A.campo01 y
A.campo02
es decir:

ALTER TABLE [dbo].[B] ADD
CONSTRAINT [FK_B_A] FOREIGN KEY
(
[campo01],
[campo02]
) REFERENCES [dbo].[A] (
[campo01],
[campo02]
)

cuando intento borrar un registro de A , me tarda unos 14 minutos
si deshabilito la relacion me tarda un minuto
esto en otra base de datos con las mismas tablas y la misma relacion
pero con 543.000 resgistros en A y 195.000 registros en B
me tarda apenas un minuto

¿como puedo mejorar el borrado?
¿que puede estar ocurriendo?

Muchas gracias









Respuesta Responder a este mensaje
#4 Alejandro Mesa
07/02/2006 - 15:49 | Informe spam
Miguel,

De seguro tratastes de decir que chequee los indices en la tabla que
referencia ([B]) y no en la referenciada ([A]), ya que para que esta sea
referenciada desde una restriccion FK, debe existir una restriccion PK,
UNIQUE o un indice unique en la tabla referenciada y por esas columnas.


AMB

"Miguel Egea" wrote:

como dice maxi revisa la política de índices no de la tabla que estás
borrando sino de la tabla refernciada por la FK, ahí puede tener esa caida
de rendimiento.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Ricardo Escudero" wrote in message
news:ewPw5X%
> existian triggers, pero aun quitandolos , salen los mismos tiempos.
>
> "Maxi" escribió en el mensaje
> news:%23%23jsiC%
>> Hola, revisa que tengas indices sobre los campos que hacen la relacion.
>>
>> Luego revisa que no existan triggers que esten haciendo alguna operacion
>> que haga demorar todo
>>
>>
>> Salu2
>> Maxi [MVP SQL SERVER]
>> www.sqlgurus.org
>>
>>
>> "Ricardo Escudero" escribió en el mensaje
>> news:
>>> tengo la tabla A y la tabla B relacionadas
>>> en la tabla A tengo 260.000 registros
>>> y en la B 1.500.000 registros
>>> la relacion es FK_B_A
>>> donde B.campo01 y B.campo02 son claves externas a los campos A.campo01 y
>>> A.campo02
>>> es decir:
>>>
>>> ALTER TABLE [dbo].[B] ADD
>>> CONSTRAINT [FK_B_A] FOREIGN KEY
>>> (
>>> [campo01],
>>> [campo02]
>>> ) REFERENCES [dbo].[A] (
>>> [campo01],
>>> [campo02]
>>> )
>>>
>>> cuando intento borrar un registro de A , me tarda unos 14 minutos
>>> si deshabilito la relacion me tarda un minuto
>>> esto en otra base de datos con las mismas tablas y la misma relacion
>>> pero con 543.000 resgistros en A y 195.000 registros en B
>>> me tarda apenas un minuto
>>>
>>> ¿como puedo mejorar el borrado?
>>> ¿que puede estar ocurriendo?
>>>
>>> Muchas gracias
>>>
>>
>>
>
>



Respuesta Responder a este mensaje
#5 Miguel Egea
07/02/2006 - 16:55 | Informe spam
uff, ya sabes que esto siempre es un galimatías, lo que pretendía decir es
que si tu tienes una tabla cliente y una tabla facturas, donde como es
normal la tabla facturas tiene una fk hacia la pk de Clientes e intentas
borrar clientes, SQL necesita garantizar que no borras ningún cliente que
tenga facturas y eso se hará infinitamenta más rápido si existe un índice en
la tabla facturas por el id de cliente.

Después de leer el mensaje original y el tuyo, me sigo liando con lo de A B,
la principal y la referenciada, creo que con ejemplo se entiende mejor :-)


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Alejandro Mesa" wrote in message
news:
Miguel,

De seguro tratastes de decir que chequee los indices en la tabla que
referencia ([B]) y no en la referenciada ([A]), ya que para que esta sea
referenciada desde una restriccion FK, debe existir una restriccion PK,
UNIQUE o un indice unique en la tabla referenciada y por esas columnas.


AMB

"Miguel Egea" wrote:

como dice maxi revisa la política de índices no de la tabla que estás
borrando sino de la tabla refernciada por la FK, ahí puede tener esa
caida
de rendimiento.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced
education
and solutions for the entire Microsoft database platform"

"Ricardo Escudero" wrote in message
news:ewPw5X%
> existian triggers, pero aun quitandolos , salen los mismos tiempos.
>
> "Maxi" escribió en el mensaje
> news:%23%23jsiC%
>> Hola, revisa que tengas indices sobre los campos que hacen la
>> relacion.
>>
>> Luego revisa que no existan triggers que esten haciendo alguna
>> operacion
>> que haga demorar todo
>>
>>
>> Salu2
>> Maxi [MVP SQL SERVER]
>> www.sqlgurus.org
>>
>>
>> "Ricardo Escudero" escribió en el mensaje
>> news:
>>> tengo la tabla A y la tabla B relacionadas
>>> en la tabla A tengo 260.000 registros
>>> y en la B 1.500.000 registros
>>> la relacion es FK_B_A
>>> donde B.campo01 y B.campo02 son claves externas a los campos
>>> A.campo01 y
>>> A.campo02
>>> es decir:
>>>
>>> ALTER TABLE [dbo].[B] ADD
>>> CONSTRAINT [FK_B_A] FOREIGN KEY
>>> (
>>> [campo01],
>>> [campo02]
>>> ) REFERENCES [dbo].[A] (
>>> [campo01],
>>> [campo02]
>>> )
>>>
>>> cuando intento borrar un registro de A , me tarda unos 14 minutos
>>> si deshabilito la relacion me tarda un minuto
>>> esto en otra base de datos con las mismas tablas y la misma relacion
>>> pero con 543.000 resgistros en A y 195.000 registros en B
>>> me tarda apenas un minuto
>>>
>>> ¿como puedo mejorar el borrado?
>>> ¿que puede estar ocurriendo?
>>>
>>> Muchas gracias
>>>
>>
>>
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida