Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Prepared statement query su db Mysql

    Salve,

    ho letto che i Prepared statement aumentano le performance nelle esecuzione di una query,
    perciò ho tesato con successo la seguente porzione di codice:

    codice:
    sql = "select * from Tbl1 where id=?"
    Set Con = Server.CreateObject ("ADODB.Command")
    Con.ActiveConnection = “stringa-odbc”
    Con.Prepared = true
    Con.CommandText = sql
    Con.Parameters.Append(Con.CreateParameter("id",200, 1, 50,780))
    set rs = Con.Execute
                   
    if not rs.Eof and not Rs.Bof then
    vettore= rs.GetRows()
    end if
                                  
    objRs.Close
    set objRs = Nothing
    Set Con = Nothing
    Mi aspettavo di dover chiudere la connessione al termine dello script, ma se inserisco Con.close' mi restituisce l’errore -> “Proprietà o metodo non supportati dall'oggetto: 'Con.close'

    Quindi chiedo: il modello di script che ho utilizzato è corretto o lascia la connessione aperta ?

    Grazie limme

  2. #2
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    non ne ho idea, però su mysql ho letto che non servono a nulla, anzi rallentano considerevolmente (per modo di dire), perché poi vengono tradotte comunque in query normali.
    Essenzialmente servono (così ho capito) per ridurre il rischio di SQL injection con un supporto "a basso livello", quindi per sicurezza, non per prestazioni

  3. #3
    Ciao brancomat,
    grazie per essere intervenuto.
    Mi potresti indicare dove l' hai letto?

  4. #4
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    Quote Originariamente inviata da Marvellous Visualizza il messaggio
    Ciao brancomat,
    grazie per essere intervenuto.
    Mi potresti indicare dove l' hai letto?
    sul sito ufficiale di mysql
    https://dev.mysql.com/doc/refman/5.0...tatements.html

    Riguardo al discorso prestazioni puoi avere una riduzione del tempo necessario per il parsing dei dati delle query (ad esempio =123456 normalmente implica parsare 6 byte, mentre se lo metti dentro un intero lo spedisci con 4 byte senza parsing), ma a mio avviso nel mondo reale è pressoché impercettibile.

    Invece salta la query cache ad ogni esecuzione.
    Per la precisione non ho controllato se mariadb o le ultimissime versioni di mysql sono diventate più "intelligenti".
    Ultima modifica di brancomat; 28-09-2015 a 19:23

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.