Archivi tag: database

Convertire tutte le tabelle di un DB MySQL da MyISAM a InnoDB con uno script linux

E’ possibile convertire in un colpo solo tutte le tabelle di un database MySQL da MyISAM a InnoDB tramite due comandi digitati dalla shell di linux:

 mysql -p -e "show tables in nome_database;" | tail --lines=+2 | xargs -i echo "ALTER TABLE {} ENGINE=INNODB;" > converti_engine.sql

Il primo comando si connette al database, recupera tutti i nomi delle tabelle (e delle viste!) e le combina, tramite il comando xargs, con il comando SQL che permette di cambiare l’engine a InnoDB. Ovviamente nome_database è da sostituire con il nome dello schema in questione. Il risultato è uno script SQL che verrà lanciato in seguito. L’unico accorgimento da adottare è quello di rimuovere le eventuali righe che contengono l’alter table di viste (che darebbero errore durante l’interpretazione e bloccherebbero lo script).

Controllato lo script, è sufficiente eseguirlo con il comando di seguito:

mysql -u root -p nome_database < converti_engine.sql

che chiederà la password ed eseguirà lo script appena preparato.

 

Velocizzare caricamento nella datagridview

Durante lo sviluppo di software gestionali in ambiente .Net, ci si imbatte immancabilmente nell’utilizzo del controllo DataGridView.

Tuttavia in fase di utilizzo del software, quando gli archivi si fanno grandi (e lo sviluppatore non tiene mai in conto questo aspetto in fase di progettazione), si notano rallentamenti del software. Ebbene, in alcuni casi il rallentamento può essere dato proprio dal caricamento delle righe all’interno della DataGridView (piuttosto che .

Invece di utilizzare il seguente metodo per aggiungere le righe alla datagrid:

dataGrid.Rows.Add(parameter1, parameter2, parameter3);

sostituite il codice con:

DataGridViewRow row = new DataGridViewRow();
row.Cells.Add(new DataGridViewTextBoxCell());
row.Cells.Add(new DataGridViewTextBoxCell());
row.Cells.Add(new DataGridViewTextBoxCell());
row.SetValues(paramter1, parameter2, parameter3);

dataGrid.Rows.Add(row);

Ovviamente le celle della riga devono corrispondere con il tipo di colonna utilizzato dalla DataGridView, quindi rispettivamente DataGridViewComboboxCell e DataGridViewCheckboxCell per le colonne particolari.

L’incremento della velocità in alcuni casi può portare da un tempo di caricamento di 6 secondi ad un tempo di 2 secondi.