Saat ini saya memperbarui tabel dengan jutaan catatan, sudah 4 hari dan permintaan masih berjalan.
Saya memeriksa monitor aktivitas yang menunjukkan bahwa kueri sedang berjalan.
Dalam log peristiwa tidak ada kesalahan sama sekali.
Kinerja bijaksana:
- Tempdb dalam disk A (ruang bebas 850 gb)
- file basis data dalam disk B (ruang kosong 750 gb)
- Ram 16 GB
Tolong sarankan saya apa yang harus saya lakukan?
Kueri
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
sumber
Pertama-tama, ubah kueri ke:
Seperti yang ditunjukkan oleh posting pertama Jeff Moden dalam diskusi itu , permintaan Anda sangat mirip dengan yang ia ingatkan tentang "efek Halloween".
Setelah itu, ekspresi LEFT tersebut harus diindeks. Jawaban gbn memberi Anda petunjuk bagaimana melakukan itu.
sumber