none
DELETE A LOT OF RECORDS RRS feed

  • Domanda

  • Buongiorno, devo eliminare una serie di records su una tabella che contiene circa 8.800.000 records. Il Db è su una macchina quad core con 4 gb di ram e se lancio il delete brutale si inchioda e torna un errore di time out. Per ora l'unico modo è lanciare il seguente comando più volte (non so quante) per eliminare un po' alla volta.

    Avete suggerimenti?  Grazie mille

    Good morning , I have to delete a number of records on a table that contains about 8.8 million records . The Db is on a quad core machine with 4 GB of RAM and if you launch the brutal delete nails and returns a time out error. For now the only way is to run the following command several times (do not know how many ) to eliminate a bit ' at a time .

    Do you have suggestions ? Thanks so much

    SET NOCOUNT ON;

    DECLARE @r INT;

    SET @r = 1000;

    WHILE @r > 0

    BEGIN

      BEGIN TRANSACTION;

      DELETE TOP (10000) -- this will change

        dbo.MRLOGUPDATES

        WHERE IDTABELLA = 'Articoli' OR

        IDTABELLA = 'Clienti' OR

        IDTABELLA = 'Fornitori' OR

        IDTABELLA = 'Listini' OR

        IDTABELLA = 'ListiniD' OR

        IDTABELLA = 'ArticoliCLIFOR' OR

        IDTABELLA = 'VMListini' OR

        IDTABELLA = 'VMListiniD'

       

      COMMIT TRANSACTION;

      set @r = @r - 1

     

    END


    Matteo Riva


    • Modificato MatteoRiva martedì 24 maggio 2016 09:07 Traduzione
    martedì 24 maggio 2016 06:18

Risposte

  • Buonasera Matteo,

    per lanciare il comando una sola volta potresti fare così:

    SELECT 1; -- per impostare @@ROWCOUNT = 1
    
    WHILE @@ROWCOUNT != 0
        DELETE TOP (10000) -- this will change
        FROM dbo.MRLOGUPDATES
        WHERE IDTABELLA = 'Articoli'  OR
        IDTABELLA = 'Clienti'  OR
        IDTABELLA = 'Fornitori'  OR
        IDTABELLA = 'Listini'  OR
        IDTABELLA = 'ListiniD'  OR
        IDTABELLA = 'ArticoliCLIFOR' OR
        IDTABELLA = 'VMListini'  OR
        IDTABELLA  = 'VMListiniD' 

    Ciao
    Giorgio Rancati

    mercoledì 25 maggio 2016 19:14
    Moderatore