Ok, voy a hacer mi mejor esfuerzo para describir esto. Tengo un SP que pasa en XML y actualizaciones e inserta otra tabla. Esto estaba funcionando ayer. Todo lo que cambié hoy fue cargar la tabla temporal con OPENXML vs xml.nodes. Incluso lo cambié y sigo teniendo este problema interesante. Tengo una actualización e inserto en la misma transacción. La actualización funciona y luego se bloquea, no hay error, no hay nada ... 9 minutos. Normalmente toma 10 segundos. No hay procesos de bloqueo de acuerdo con master.sys.sysprocesses
. Lo curioso es que la Selección del inserto no devuelve filas, ya que ya están en la base de datos. La actualización actualiza 72438 enActualización SQL no funciona inserte
SQL Server Execution Times:
CPU time = 1359 ms, elapsed time = 7955 ms.
ROWS AFFECTED(72438)
¿No tengo ideas acerca de qué podría estar causando mi problema? Permisos, no lo creo? Espacio No lo creo porque se devolverá un Error?
consultas:
UPDATE [Sales].[dbo].[WeeklySummary]
SET [CountryId] = I.CountryId
,[CurrencyId] = I.CurrencyId
,[WeeklySummaryType] = @WeeklySummaryTypeId
,[WeeklyBalanceAmt] = M.WeeklyBalanceAmt + I.WeeklyBalanceAmt
,[CurrencyFactor] = I.CurrencyFactor
,[Comment] = I.Comment
,[UserStamp] = I.UserStamp
,[DateTimeStamp] = I.DateTimeStamp
FROM
[Sales].[dbo].[WeeklySummary] M
INNER JOIN
@WeeklySummaryInserts I
ON M.EntityId = I.EntityId
AND M.EntityType = I.EntityType
AND M.WeekEndingDate = I.WeekEndingDate
AND M.BalanceId = I.BalanceId
AND M.ItemType = I.ItemType
AND M.AccountType = I.AccountType
y
INSERT INTO [Sales].[dbo].[WeeklySummary]
([EntityId]
,[EntityType]
,[WeekEndingDate]
,[BalanceId]
,[CountryId]
,[CurrencyId]
,[WeeklySummaryType]
,[ItemType]
,[AccountType]
,[WeeklyBalanceAmt]
,[CurrencyFactor]
,[Comment]
,[UserStamp]
,[DateTimeStamp])
SELECT
I.[EntityId]
, I.[EntityType]
, I.[WeekEndingDate]
, I.[BalanceId]
, I.[CountryId]
, I.[CurrencyId]
, @WeeklySummaryTypeId
, I.[ItemType]
, I.[AccountType]
, I.[WeeklyBalanceAmt]
, I.[CurrencyFactor]
, I.[Comment]
, I.[UserStamp]
, I.[DateTimeStamp]
FROM
@WeeklySummaryInserts I
LEFT OUTER JOIN
[Sales].[dbo].[WeeklySummary] M
ON I.EntityId = M.EntityId
AND I.EntityType = M.EntityType
AND I.WeekEndingDate = M.WeekEndingDate
AND I.BalanceId = M.BalanceId
AND I.ItemType = M.ItemType
AND I.AccountType = M.AccountType
WHERE M.WeeklySummaryId IS NULL
ACTUALIZACIÓN
probar los consejos que aquí trabajaron durante un tiempo corro lo siguiente antes de mi llamada al procedimiento almacenado
UPDATE STATISTICS Sales.dbo.WeeklySummary;
UPDATE STATISTICS Sales.dbo.ARSubLedger;
UPDATE STATISTICS dbo.AccountBalance;
UPDATE STATISTICS dbo.InvoiceUnposted
UPDATE STATISTICS dbo.InvoiceItemUnposted;
UPDATE STATISTICS dbo.InvoiceItemUnpostedHistory;
UPDATE STATISTICS dbo.InvoiceUnpostedHistory;
EXEC sp_recompile N'dbo.proc_ChargeRegister'
Todavía se estanca en Insert Statement, que nuevamente inserta 0 filas.
¿Se cuelga la inserción si se comenta la actualización? – Davidann
No hay teoría sobre su problema específico, pero si está en SQL Server 2008 es posible que desee utilizar 'MERGE' para esto de todos modos. –
Entonces, lo que realmente hice fue eliminar los datos que estaba actualizando. El primer intento 0 actualizaciones y todas las inserciones y funcionó bien. La segunda vez todas las actualizaciones y 0 inserciones funcionaron bien ahora. ¿Algunas ideas? Debería eliminar la pregunta Ahora estoy asustado de que esto suceda en la producción algún día. – Mike