none
Timeout operazione RRS feed

  • Domanda

  • Ciao  a tutti, su di un sql server 2005 , in particolare in una tabella che contiene parecchi dati, avrei esigenza di modificare la struttura della tabella, rimuovendo un campo Chiave primaria autoincrementante e il tipo di dato (da int a smallint) di un altro campo. Le operazioni eseguite con Em anche una alla volta falliscono causa timeout. Come posso ottenere le modifiche che desidero ?

    grazie ciao

    martedì 5 luglio 2011 08:54

Risposte

  • Ciao Alessandro,

    si, moooooolto più veloce, pressochè istantaneo anche con milioni di righe.

    Avrà una forma del tipo:

    alter table nometabella drop column nomecolonnaidentity

    alter table nometabella alter column nomecolonnaint smallint not null

    marc.

    giovedì 7 luglio 2011 17:18

Tutte le risposte

  • Ciao Alessandro,

    SQL Server esegue questo tipo di operazioni su una tabella temporanea che verrà poi sostituita alla tabella originale, quindi, se hai molti dati, il loro tempo di copia dalla tabella originale a quella temporanea può essere significativo.

    Questo articolo della Knowledge Base spiega un po' la situazione e come risolvere il problema: http://support.microsoft.com/kb/915849.

    HTH.

     

     


    Alberto Dallagiacoma
    My Blog: http://blogs.ugidotnet.org/alby
    DotDotNet
    - User Group .NET Emilia Romagna: http://www.dotdotnet.org

     


    mercoledì 6 luglio 2011 07:37
  • non riesco ad aprire il tuo link, ma intento come unica soluzione ho trovato come ampliare il timeout che di default è di 30 sec

     

    fatto da codice sql dici che il processo è più rapido o è la stessa identica cosa ?

    mercoledì 6 luglio 2011 08:52
  • Ciao Alberto,

    giusto per precisione e per dare a cesare quel che è di cesare, Sql Server, per fortuna, non fa nulla del genere. E' SSMS (e prima di lui EM) che crea quello script, spesso assurdo e inutile visto che lo applica anche dove bastano drop column e/o (con 2008)  alter column.

    marc.


    mercoledì 6 luglio 2011 11:39
  • ma nel caso di un alter table alter column etc, l'operazione è molto più veloce ? c'è possibilità di perdita di dati ?
    giovedì 7 luglio 2011 13:27
  • Ciao Marcello,

    Giusta precisazione. Ho scritto "SQL Server" genericamente, ma in realtà volevo dire "SSMS".

     


    Alberto Dallagiacoma
    My Blog: http://blogs.ugidotnet.org/alby
    DotDotNet - User Group .NET Emilia Romagna: http://www.dotdotnet.org

    giovedì 7 luglio 2011 14:10
  • Ciao Alessandro,

    si, moooooolto più veloce, pressochè istantaneo anche con milioni di righe.

    Avrà una forma del tipo:

    alter table nometabella drop column nomecolonnaidentity

    alter table nometabella alter column nomecolonnaint smallint not null

    marc.

    giovedì 7 luglio 2011 17:18