 |     |  |
 | |  |
 | |  |
 |
|
| |
| Next | |  |
|
|
|  |
 | |  |
 |
|
|
|
buenas, miren tengo una duda, estoy ejecutando un bucle de mas de 13 mil registros que se insertan en la base de datos sql 2005, el caso es que mientras el proseso se ejecuta la aplicacion se friza, es decir no puedo hacer nada con ella, y si intento moverla o siquiera toparle el programa estalla, ahora bn el proseso se ejecuta perfectamente sn problemas despues de 2 minutos cuando maximo casi siempre dura menos, lo que quiero saber es como hago para que no se frise, hay algo especiico que yo pueda usar alguna barra de espera, algo proseso especil que pueda llamar, no se, ayudenme en ese aspecto que soy novato |
|
|
|
 |  |
|
|
| Re: bucles que tardan mucho |
|
|
Hola
Te recomiendo debes de optimizar la base de datos, claro siempre es necesario dedicarle un tiempo al diseño de nuestra base de datos. Indicar bien las tablas, campos y sus relaciones, en función de las necesidades que tengamos, puede facilitarnos el mantenimiento y garantizarnos un rendimiento adecuado a nuestras necesidades.
-
Para conseguir un buen diseño de las tablas que integrarán nuestra base de datos suele utilizarse un Modelo Relacional, donde se extraen los elementos, propiedades y relaciones entre los mismos, que se traducen en la base de datos en tablas, sus campos, índices y claves relacionadas.
-
Una vez extraídas las tablas, del modelo relacional, lo principal para un buen funcionamiento de nuestra base de datos es disponer de los índices correctos en las tablas, sobre los que trabajará SQL 2005 para extraer el resultado de las mismas.
La indexación, tanto de claves primarias como extranjeras, se puede obtener del modelo relacional.
- Las claves primarias identifican unívocamente a cada elemento de una tabla.
- Las claves extranjeras marcan las relaciones entre tablas.
Disponer de índices en los campos adecuados optimizará sus resultados:
- Para mejorar una consulta (SELECT), hay que crear un índice sobre los campos que son utilizados en las búsquedas (los que aparecen en las cláusulas WHERE o JOIN).
- Utilice índices sobre campos con valores únicos. Los índices funcionan peor si el campo tiene valores duplicados.
- Trate de que los índices sean cortos. Si indexa un campo de texto, evite hacerlo sobre campos de longitud variable, y acorte siempre el tamaño del índice a lo que considere más adecuado. Por ejemplo, si un campo CHAR tiene 200 caracteres y sabe que los valores se distinguen en los primeros 20 caracteres, indexe sólo hasta dicho tamaño de campo. Ahorrará espacio y ganará velocidad de respuesta.
- No cree índices innecesarios. Estos se actualizan con cada cambio en la tabla asociada y pueden ralentizar las modificaciones de la misma.
Sea coherente con los tipos de campos en sus tablas y elija siempre los más adecuados:
-
- Utilice los mismos tipos de campos para el mismo tipo de información en distintas tablas. Si necesitara cruzar tablas con campos del mismo tipo ganará en rapidez.
- Evite en lo posible el uso de campos de tamaño variable. Los campos de longitud fija (como CHAR) son más eficientes que los de longitud variable (VARCHAR, BLOB o TEXT).
- Utilice campos numéricos frente a campos de texto.
- Trate de usar campos que no puedan tener valores nulos (Not Null). Los valores nulos ralentizan las lecturas.
-
Mantenga siempre sus tablas con la información necesaria (ni más ni menos):
Ramón Ant. Morillo R. -
Analista Redes -
Univerisdad APEC / OISOE
|
|
|
|
|  |
 | |  |
 | |  |
 | |  |
|