Actualmente estoy actualizando una tabla con millones de registros, han pasado 4 días y la consulta aún se está ejecutando.
Verifiqué que el monitor de actividad muestra que la consulta se está ejecutando.
En el registro de eventos no hay errores en absoluto.
En cuanto al rendimiento:
- Tempdb en el disco A (850 gb de espacio libre)
- archivo de base de datos en el disco B (750 gb de espacio libre)
- 16 GB de RAM
Por favor sugiérame ¿qué debo hacer?
La consulta
UPDATE
dbo.table1
SET
costPercentage = ISNULL(t2.PaymentIndex, 1.0),
t2.TopUp_Amt = (ISNULL(t2.PaymentIndex, 1.0) - 1.0)
* ISNULL(dbo.table1.Initial_Tariff_Amt, 0.00),
Total_Tariff_Inc_t2 = ISNULL(t2.PaymentIndex, 1.0)
* ISNULL(dbo.table1.Initial_Tariff_Amt, 0.00)
FROM
dbo.table2 t2
WHERE
LEFT(dbo.test1.procodet, 3) = LEFT(t2.ProviderCode, 3) COLLATE database_default
fuente
En primer lugar, cambie la consulta a:
Según lo indicado por la primera publicación de Jeff Moden en esa discusión , su consulta es muy similar a la que advirtió sobre el "efecto Halloween".
Después de eso, esas expresiones IZQUIERDA deben indexarse. La respuesta de gbn te da consejos sobre cómo hacerlo.
fuente