Results 1 to 4 of 4

Thread: effect van prepared op een query

  1. #1
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    426

    effect van prepared op een query

    Het setten van de property "prepared" van een query zorgt ervoor dat de sql-statement wordt voorgecompileerd ( of hoe je dat ook zou moeten zeggen) zodat de al dan niet geparametrizeerde query de volgende keer sneller wordt uitgevoerd. Ik kan me voorstellen dat dit voor een ingewikkelde query die vaak herhaald moet worden flink kan schelen.
    Het effect zal wel samenhangen met de ingewikkeldheid van de query en de tijd die met het prepareren gemoeid is.

    Maar hoe zit dat werkelijk: Wordt dat prepareren toch al gedaan, en zorgt "prepared"er alleen maar voor dat het resultaat voor hergebruik wordt klaar gezet,of kost dit extra tijd?
    M.a.w. is er theoretisch een soort van omslagpunt waarboven een prepared statement zin heeft.

    Ik heb gemerkt dat met een ADO-connection die een Oracle of SQL-server database aanspreekt het nogmaals uitvoeren van de dezelfde query (onder prepared:=false) de eerste keer (veel) langzamer is dan de volgende keren. Het lijkt erop dat die RDMSen een soort van autoprepare functie hebben.
    Als dat zo is, voegt "prepared" dan nog wat toe?

  2. #2
    Als je dit ziet met gewone queries (zonder parameters) dan denk ik dat het gewoon om het bufferen van bepaalde data gaat (database-pages in memory e.d.). Je zou dit kunnen controleren door een unprepare uit te voeren na je Query. Als je tweede query dan nog steeds sneller is, dan heb je dus met buffering te maken.

    Prepare heeft het meeste zin als je werkt met INSERT statements (met parameters). Voor gewone queries zie ik het nut niet zo (er wordt door de meeste databases intern toch wel een prepare uitgevoerd). Alleen als je heel veel gewone (parameterized) queries achter elkaar uitvoert kan het dus nut hebben.

  3. #3
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    426
    Heeft een parametrized prepared query bij een INSERT dan meer effect dan bij een SELECT?

  4. #4
    Nee, maar over het algemeen voer je geen 1000den (dezelfde) SELECT queries achter elkaar uit met parameters. Dat doe je met INSERTs wel veel vaker.

    Als de SELECT queries elke keer weer anders zijn (of je hebt de verschillende waarden hard in de SQL staan) dan heeft een prepare geen zin omdat deze toch elke keer weer anders is.

    En als je wel 1000den dezelfde SELECT queries uitvoert met parameters dan is het misschien beter om je query wat te optimaliseren zodat je dit met één query kunt doen.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •