![]() |
Conexión ADO
Estoy conectando a una base de datos de SQL Server 2005 a traves de componentes ADO de Delphi, necesito saber de que forma puedo hacer que las transacciones (Inserción, Modificación, Eliminación...) sean lo mas rápidas posible...
Me surge un problema con esto, al realizar dichas transacciones, estas me parecen excesivamente lentas: Con 10000 registros --> Inserción: 1 min. 54 seg., Modificación: 1 min. 52 seg., Eliminación: 1 min 52 seg. No uso sentencias SQL, de momento prefiero evitarlas... ¿Como puedo hacerlas mas rapidas?, quiero reducirlo a segundos, por ejemplo con en BDE de paradox en insertar la misma cantidad de registros no llega ni a los 5 segundos... yo quiero con ADO conseguir el mismo tiempo... ¿Alguien puede ayudarme, aconsejarme?, Gracias a todos... |
Cita:
Prepara las sentencias con parámetros. Utiliza transacciones de n-registros (valor de n, según pruebas, 1.000, 10.000, ...) |
Aun usando sentencias SQL, y aplicando cambios, segun un número de registros --> (if i MOD 1000 = 0 then...), sigo obteniendo resultados ridículos, has hablado de preparar las transacciones, ¿como las preparo para un resultado optimo?...
|
Hacete amigo del SQL
Hola, vas a tener que vencer ese miedo e iniciarte en SQL, ya que a los de Microsfot les encanta y eso te haceleraria tus procedimientos.
Bien por el amigo que te dio ese codigo, usalo, realmente es muy rapido |
Cita:
Ejemplo // Pseudocodigo // Los parámetros se marcan con el símbolo ":" SQL.Text := 'insert into tabla (campo1, campo2, ...) values (:Valor1, :Valor2)'; SQL.Prepare; for i := to 1000 do begin SQL.Param('Valor1').AsInteger := i; SQL.Param('Valor2').AsInteger := Random(i); SQL.Execute() end; |
Buenas de nuevo, no tengo miedo al SQL, de hecho me gusta SQL, pero soy un mandao... y no ha sido idea mia usarlo como primer recurso, jeje, es una opción que ya tenia contemplada, mi problema a esto viene a que quiero migrar de una base de datos a otra, usando el código existente y realizando el mínimo de cambios posible (se que habr´1 que cambiar muuucho código, pero quiero que sea lo menos...), me he decantado por SQL server, pero se que puede ser muy veloz, y mi intención es que asi sea, quiero que me ayudeis con esto, porque, ademas, la velocidad de SQL Server no se contempla en nigun otro foro o página web, y es un tema interesante, acelerar las transacciones, y creo que el futuro es ADO (o al menos eso se pretende con ADO .NET)...
Gracias por el pequeño trozo de código que me has enviado, me ha ayudado, pero aun no es suficiente, necesito mas información, admito todo tipo de sugerencias, gracias... ;) Más ayuda por favor... |
Cita:
gracias... ;) |
[quote=mpedrero]
...¿Que componente has usado para realizar esta sentencia? ... para 10000 registros me tarda 1 minnuto y 28 segundos aproximadamente, quiero que sea en segundos... /quote] Es pseudocódigo. Nunca conseguirás que SQL-Server sea tan rápido como Paradox. Nunca conseguirás que Paradox sea tan fiable como SQL-Server |
[quote=mensana]
Cita:
Entonces... siendo asi, ¿que base de datos cliente/servidor, es muy rapida, y que pueda utilizar con ADO?... Como siempre... gracias... ;) |
La franja horaria es GMT +2. Ahora son las 09:20:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi