Ho una tabella in SQL Server 2008 (SP2) contenente 30 milioni di righe, dimensioni della tabella 150 GB, ci sono un paio di colonne int e due colonne nvarchar (max): una contenente testo (da 1 -30000 caratteri) e uno contenente xml (fino a 100000 caratteri).L'aggiornamento della tabella richiede molto tempo
La tabella non ha chiavi primarie o indici (è una tabella di staging). Così sto eseguendo una query:
UPDATE [dbo].[stage_table]
SET [column2] = SUBSTRING([column1], 1, CHARINDEX('.', [column1])-1);
la query è in esecuzione per 3 ore (e non è ancora completato), che credo sia troppo lungo. È? Vedo che c'è una velocità di lettura costante di 5 MB/se una velocità di scrittura di 10 MB/s in un file .mdf.
Come posso scoprire perché la query è in esecuzione così a lungo? Il "server" è i7, 24GB di RAM, dischi SATA in RAID 10.
Aggiornato:
tabella contiene una colonna int, due (20) colonne nvarchar e due colonne (max) nvarchar. Colonna1 e Colonne2 nella clausola di aggiornamento sopra sono colonne nvarchar (20). Le colonne "grandi" non vengono aggiornate.
Grazie mille!
Le colonne degli aggiornamenti sono indicizzate? – IamIC