(Utilizando Delphi 2010 + última SQLite en el modo WAL)alternativa SQLite con la escritura simultánea (Delphi)
estoy usando (puerto de Delphi SQLite) DISQLite con mi solicitud cliente multi-threading (aún no se en libertad, por lo que puede cambiar el motor de base de datos si realmente tengo a)
Mi perfilador dice claramente que es una decisión estúpida, rastreé esto a 2-3 sentencias SQL muy simples que vuela cuando se ejecuta en una sola aplicación enhebrada, pero debido a que los hilos están bloqueados/esperando (SQLite realmente no funciona bien con múltiples hilos intentando escribir simultáneamente)
hice todo lo posible para optimizar mi código/evitar los cuellos de botella, pero después de varias semanas de duro trabajo, ahora me pregunto si no es simplemente más fácil para volcar SQLite & elegir un motor de base de datos diferente (?)
Mis requisitos son:
- ÁCIDO
- Muy buena lectura simultánea/escritura (nivel de grabación) de apoyo
- (muy) rápida & motor de base de datos estable
- árbol B
- Delphi 2010 apoyo
sólo estoy usando INSERT/UPDATE/DELETE comandos básicos con índices, nada de lujos. Así que mis requisitos de SQL son relativamente básicos (no necesito unirme u otras cosas "más avanzadas" de sql).
También estoy abierto a soluciones NQL, siempre y cuando cumpla con los requisitos mencionados anteriormente.
Mi investigación llevó a Berkley DB, que es, si entendí correctamente, una versión modificada de SQLite con soporte de escritura concurrente, pero el problema es que no es realmente para delphi.
También leí acerca de Gabinete de Kyoto, pero de nuevo, no hay soporte delphi :(
Cualquier sugerencia sería más que bienvenido,
Gracias
No estoy seguro acerca de las fijaciones de Delphi, pero puedes echar un vistazo a http://en.wikipedia.org/wiki/Berkeley_DB (tiene enlaces para casi todo lo demás) –
@JoachimIsaksson: Gracias, sí lo hice en BDB en wikipedia, encontré esto: http://www.demonak.com/delphi/berkeleydb.en.shtml y "AnyDAC para soporte de DB de Delphi Berkeley", pero no estoy seguro de que esto sea lo que quiero (no para mencionar el costo de la licencia ... :() – TheDude
Lo uso para código abierto y no vi en su pregunta que especificó código abierto o no, pero sí, definitivamente podría ver los costos de licencias de Oracle como un problema. para código abierto en la misma situación, aunque :) –