Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Lentezza di scrittura su db mysql
mercoledì 20 gennaio 2010 - 19.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
maxottav
Profilo
| Newbie
15
messaggi | Data Invio:
mer 20 gen 2010 - 19:09
Ciao a tutti, sono appena arrivato in questo forum, ho scritto un programmino in vb2008 che importa records da un db access, apporta alcune modifiche al dataset e poi scrive il dataset su una tabella MySQl. I tempi di lettura, modifica datset e scrittura di un file xml sono rapidissimi, circa 1-2 secondi per un migliaio di records.
Il problema sorge nella scrittura (sia in locale che in remoto) dove impiega circa 30 secondi.
Poichè tale operazione deve essere eseguita ciclicamente con intervalli di 60/90 secondi ho l'impressione che il tempo di scrittura sia eccessivo e smisurato rispetto alle altre operazioni. A vostro parere i 30" sono un tempo fisiologico normale o c’è qualcosa che mi sfugge?
i records sono composti da circa 15 campi di testo con una media di 10 caratteri per campo.
dopo aver letto da access e modificato il dataset, per scrivere uso queste istruzioni:
Dim queryOut As String = “SELECT * FROM Classifiche WHERE idcn = ” & variabile
Dim ClassOut As New MySqlDataAdapter(queryOut, objConnection)
Dim dbCommand As MySqlCommandBuilder = New MySqlCommandBuilder(ClassOut).
ClassOut.UpdateCommand = dbCommand.GetInsertCommand
ClassOut.Update(Classds, “Classifiche”)
grazie anticipate.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 22 gen 2010 - 02:59
>Ciao a tutti, sono appena arrivato in questo forum,
Ciao! e benvenuto su Dotnetell!
>A vostro parere i 30" sono un tempo fisiologico normale o c’è qualcosa che mi sfugge?
non ti posso dire in base a che macchina hai (quella dove hai mysql) quali sono le prestazioni che dovresti aspettarti.. ma 30 secondi sono un'eternità. Proprio oggi su una macchina virtuale piccolissima ho caricato 100.000 righe in 1 secondo.. massimo 2. Puoi ben capire che qualcosa non va. Io partirei dal provider. Che connettore usi per MySQL? Hai provato anche a reimportare in tutto in una nuova tabella di access per vedere i tempi paragonati?
>grazie anticipate.
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
maxottav
Profilo
| Newbie
15
messaggi | Data Invio:
ven 22 gen 2010 - 10:23
la macchina che utilizzo ha ottime prestazioni quindi non imputo nessuna colpa a lei. ho fatto test con access e mysql. in mysql ho copiato tutto su una nuova tabella simile con l'istruzione INSERT INTO ... SELECT... e ci ha impiegato un nulla. ho ripetuto la prova su access con tabelle collegate a mysql sul web copiando tutto in locale e anche qui il tempo è stato quasi 0. così come quando carico il dataset sulla mia applicazione ci impiego un attimo. ripeto il collo di bottiglia è la scrittura dalla mia applicazione. per connettermi uso questo codice (logicamente ne codice originale non ci sono asterischi):
Imports MySql.Data.MySqlClient
Public Class Form1
' Stringa di connessione per il database remoto MySql
Dim connSring As String = "host=ftp.******.com; username=o*****; password=*****; database=******"
' Stringa di connessione per il database locale MySql
'Dim connSring As String = "host=localhost; username=root; password=******; database=*********"
' Mi collego al database
Dim objConnection As New MySqlConnection(connSring)
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
dom 24 gen 2010 - 01:44
>ripeto il collo di bottiglia è la scrittura dalla mia applicazione
ok, se prendi il codice generato e lo esegui direttamente su mysql inserisce velocemente?
Se il problema sta nel codice che crei, o è il connettore, o il provider, oppure hai un traffico di richiesta tale da bloccarti la risorsa... Se dici che la macchina sta bene, non mi viene altro.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
maxottav
Profilo
| Newbie
15
messaggi | Data Invio:
dom 24 gen 2010 - 17:23
ammetto i miei limiti, sono un principiante smanettone e, per ora, non so cosa significa e come "eseguire il codice da mysql". riguardo al traffico non può influire perchè il tempo su db locale è simile. per quanto riguarda il connettore teoricamente il mysql per .net dovrebbe essere il migliore. le alternative quali possono essere? ADODB? OleDB?
non ho ancora trovato nulla sulla rete ma qualche esempio di codice ci potrebbe essere. se qualcuno ha già trovato qualcosa di simile: magari un link sarebbe gradito.
grazie ancora per l'aiuto.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 25 gen 2010 - 17:38
>ammetto i miei limiti, sono un principiante smanettone e, per
>ora, non so cosa significa e come "eseguire il codice da mysql".
Prova a cercare un manager per mysql, tipo un programma per eseguire i comandi direttamente:
http://www.brothersoft.com/mysql-query-browser-for-windows-71868.html
e lanciare il comando.. vedi se tutto va bene
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !