SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
12. 06. 2008. | #1 |
Goran Pilipović
Sir Write-a-Lot
|
mySQL prepared statement
Kada se pripremi i izvrsi statement, na primer:
PREPARE test FROM 'SELECT email FROM users WHERE id=?'; SET @u = 123; EXECUTE test USING @u; DEALLOCATE PREPARE test; Racunam da ako se ne izvrši DEALLOCATE onda isti statement može da se koristi vise puta do kraja izvršenja scripta. Da li se statement automatski dealocira (brise iz memorije) kada se zavrsi script, kao sto je slucaj sa connect, da se po zavrsetku scripta automatski radi disconnect (osim ako nije permanent connect)? O koji brzinama govorimo, da li je ovakav statement značano sporiji od običnog "SELECT email FROM users WHERE id=123" ili je čak možda i brži? Ako želim isti statement za različite varijable da koristim nekoliko puta za redom, da li značajno oduzima vreme sama akcija PREPARE ... SET... DEALLOCATE? Hoću da kažem da li je mnogo sporije ovako: HTML kôd:
PREPARE test FROM 'SELECT email FROM users WHERE id=?'; SET @u = 123; EXECUTE test USING @u; DEALLOCATE PREPARE test; // pa se onda radi nesto drugo pa se pozove: PREPARE test FROM 'SELECT email FROM users WHERE id=?'; SET @u = 24; EXECUTE test USING @u; DEALLOCATE PREPARE test; // pa se onda radi nesto drugo pa se pozove: PREPARE test FROM 'SELECT email FROM users WHERE id=?'; SET @u = 931; EXECUTE test USING @u; DEALLOCATE PREPARE test; HTML kôd:
PREPARE test FROM 'SELECT email FROM users WHERE id=?'; SET @u = 123; EXECUTE test USING @u; // pa se onda radi nesto drugo pa se pozove: SET @u = 24; EXECUTE test USING @u; // pa se onda radi nesto drugo pa se pozove: SET @u = 931; EXECUTE test USING @u; DEALLOCATE PREPARE test;
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Prepared statements pitanje | eclipse | PHP | 1 | 10. 07. 2010. 13:24 |