sql >> Databáze >  >> RDS >> SQLite

SQLiteStatement proveďte SELECT / INSERT / DELETE / UPDATE

execute pravděpodobně není rychlejší než executeInsert , může být dokonce pomalejší (na ICS execute volá executeUpdateDelete a zahodí návratovou hodnotu). Musíte to otestovat, ale pochybuji, že zde najdete skutečný rozdíl.

AFAIK, Je bezpečné použít pouze execute pokud nepotřebujete návratové hodnoty, ale nespoléhal bych na to, že to bude platit v budoucích verzích Androidu. Dokumentace říká, že ne, takže možná někdo změní chování, aby to odráželo. Zdá se, že starší implementace používají příkaz execute také (např. 2.1 delete() zdrojový kód). Jelly Bean se například hodně změnil v zákulisí SQLite, ale měl by stále fungovat při použití execute

Kromě toho, pokud nepoužíváte stejný SQLiteStatement znovu a znovu při pouhém převázání argumentů to pravděpodobně nemá cenu používat. Pokaždé, když zavoláte běžné insert, vytvoříte nový , update , ... je rychlý ve srovnání se skutečným přístupem k databázi a požadovaným diskovým I/O. Na druhou stranu transakce hodně pomáhají, protože synchronizace stavu databáze na disku pro každý příkaz je opravdu pomalá.



  1. Výpočet průběžného součtu pomocí klauzule OVER a klauzule PARTITION BY na serveru SQL Server

  2. Oracle SQL, jak odstranit čas z data

  3. SQL Server Transakční replikace interní

  4. Jak funguje funkce STR() v SQL Server (T-SQL)