sql >> Databáze >  >> RDS >> Sqlserver

Příkaz DELETE je v tabulce s seskupeným indexem příliš pomalý

Může to být pomalé, protože velké odstranění generuje velký protokol transakcí. Zkuste to smazat po částech, například:

WHILE 1 = 1
BEGIN
    DELETE TOP (256) FROM FTPLog WHERE FTPLogId <= @MaxFTPLogId
    IF @@ROWCOUNT = 0
        BREAK
END

To generuje menší transakce. A zmírňuje problémy se zamykáním tím, že vytváří prostor pro dýchání pro jiné procesy.

Můžete se také podívat do rozdělených tabulek . Ty vám potenciálně umožňují vymazat staré položky zrušením celého oddílu.



  1. Python:Co je špatného na mém kódu s více procesy vkládáním do MySQL?

  2. 10 SP_EXECUTESQL Pro lepší dynamické SQL je třeba se vyhnout

  3. Převod číslic/čísel ve slovech pro měnu INR (indické rupie) v Oracle PL/SQL

  4. Nahraďte všechna pole v MySQL