Ahí va el plan Maxi Saludos----- Original Message ----- From: "Maxi accotto" <[EMAIL PROTECTED]>
To: "Seba Frank" <[EMAIL PROTECTED]> Sent: Monday, November 17, 2008 10:48 AM Subject: [dbms] Delete con esperas Si por eso te decia, la forma no es borrar todo junto! De todas maneras no me queda clara el plan, es un clister index scan o es un cluster index seek? Ojo con eso, que un cluster index scan es un table scan! El while ayuda y seria la forma mas adecuada para que tu TL no se vaya a las nubes y el proceso no haga grandes loqueos! Pero bueno, me hubiera gustado ver el plan ;-) Maximiliano Damian Accotto Microsoft MVP en SQLServer SQL Total Consulting Bogota 3631 P3B 1407 Buenos Aires-Argentina Movil: (011)-15-5868-5599 Desde el exterior: (+54-911)-5868-5599 [EMAIL PROTECTED] -----Mensaje original----- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Seba Frank Enviado el: lunes, 17 de noviembre de 2008 09:40 a.m. Para: Maxi Asunto: [dbms] Delete con esperas No Maxi, no tuve ningún timeout, lo hice desde SSMS. En cuanto al plan de ejecución es un simple delete, ordenado por un cluster index. Clustered Index Delete Costo: 100% y Delete costo: 0% Eso es todo el plan. Ya lo solucione borrando por porciones con un while. Muchas gracias Seba----- Original Message ----- From: "Maxi Accotto" <[EMAIL PROTECTED]>
To: "Seba Frank" <[EMAIL PROTECTED]> Sent: Friday, November 14, 2008 4:52 PM Subject: [dbms] Delete con esperas Hola, si nos pasas el plan de ejecucion seria ma facil! asi vemos que pasa! igual borrar de a 5M juntos me parece una locura, la transaccion sera grande y hasta podes caer en un tablock! El timeout de donde te lo da? no creo q sea de Query analizer o SSMS. Bueno dame mas datos y vemos que pasa, en principio el plan y la query completa de delete. El día 12 de noviembre de 2008 8:18, Carlos Peix <[EMAIL PROTECTED]> escribió:
Hola Sebastian, No puedo explicar la diferencia tan grande, seguramente estas alcanzando algun limite duro. Algo parecido a: a medida que vas consumiendo mas memoria, el rendimiendo va disminuyendo linealmente, pero cuando pasas a paginar a disco, tenes un salto abismal. No digo que sea eso, pero seguramente este pasando algo conceptualmente similar. Tenes que tener en cuenta quela base de datos tienen que tener toda la informacion de la transaccion acumulada para confirmarla en el commit, el espacio en que almacena esa informacion es la famosa tempdb. Cuando mas grande es la transaccion, mas se fuerza este recurso. Ya me sorprende que tarde nada mas que un segundo en borrar 100.000 registros (yo hubiese sugerido 20 o 30K). Ya que tenes que segmentar, yo me quedaria con 100.000. Carlos Peix ________________________________ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Seba Frank Enviado el: Miércoles, 12 de Noviembre de 2008 10:06 a.m. Para: [EMAIL PROTECTED] Asunto: [dbms] Delete con esperas No no, es una tabla con 40 millones de registros, asique esa posibilidad no cabe en este escenario. Lo que hice fue borrarlos de a subconjuntos. Lo raro fue que al borrar 100.000 lo hacía en 1 segundo, pero con 500.000 se me moría, lo deje corriendo 5 min y lo cancele. Algún comentario acerca de este comportamiento. Saludos ----- Original Message ----- From: Guevara Freddy To: [EMAIL PROTECTED] Sent: Tuesday, November 11, 2008 7:02 PM Subject: RE: [dbms] Delete con esperas Cuál es el numero de registros que quedarían en la estructura luego de borrado los registros, adicional, es proceso batch?.., prueba realizando un insert into a una tablatmp física del los que qudan por fuera del delete, drop de la tabla antigua y sp_rename de la tmp con el nombre de la original y no descuidar la respectiva creación de índices. Att Fredy J. Guevara Carrillo ________________________________ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Seba Frank Enviado el: Martes, 11 de Noviembre de 2008 8:21 Para: Guevara Freddy Asunto: [dbms] Delete con esperas Buen día lista. Tengo un problema con un delete. El mismo debería borrar cerca de 5 millones de registros. El problema que tengo es que se me suspende, y el tipo de espera es PAGEIOLATCH_EX. El tiempo de espera no pasa nunca los 500 lo que me da una pauta de que se ejecuta y luego vuelve a suspenderse. Mas datos, el where es sobre un indice cluster que tiene un solo campo, ej indice id y el where id=x. La fragmentación es casi nula porque acabo de reindexar. Tienen alguna idea o comentario? Muchas Gracias Seba
-- ----------------------------------------------------------- Microsoft MVP en SQL Server Consultor en SQLTotalConsulting Excelencia en servicios y consultoria SQLServer www.sqltotalconsulting.com ----------------------------------------------------------- No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.175 / Virus Database: 270.9.4/1793 - Release Date: 16/11/2008 07:58 p.m.
<<clip_image002.jpg>>
