Pregunta tonta - Insert into

64 views
Skip to first unread message

Idalberto Gonzalez

unread,
Jan 23, 2014, 6:52:13 PM1/23/14
to publice...@googlegroups.com
Hola

Estoy trabajando con sql 2008 R2. Mi inquietud es, por que cuando hago un "insert" me coloca los nuevos valores en la primera fila y no en la ultima?  Gracias. Saludos,

Idalberto Gonzalez
 

mpulla

unread,
Jan 23, 2014, 7:01:53 PM1/23/14
to publice...@googlegroups.com
Hola Idalberto.

Puedes explicarte un poco más.

Saludos.
Mauricio

Fernando D. Bozzo

unread,
Jan 23, 2014, 7:19:12 PM1/23/14
to publice...@googlegroups.com
No tengo SQL Server, pero me imagino --porque no lo explicás-- que te referís a lo que muestra en la interfaz, y supongo que lo ordenará visualmente así. Seguramente cliqueando el header de alguna columna te lo ordene de otra forma.

Saludos.-

Idalberto Gonzalez

unread,
Jan 23, 2014, 7:55:46 PM1/23/14
to publice...@googlegroups.com
Voy a tratar de explicarme mejor.

Tengo una tabla con los campos codigo y nombre y la veo asi:

codigo                       nombre

001                           nombre01
002                           nombre02
003                           nombre03
004                           nombre04

Cuando inserto un nuevo registro (codigo y nombre) , la veo asi

005                           nombre05
001                           nombre01
002                           nombre02
003                           nombre03
004                           nombre04

La estoy usando con un cursoradapter y la verdad que se hace muy dificil visualizarla asi en el grid. Esto lo puedo resolver usando "order by", pero creo que lo mas logico es que el ultimo registro insertado se vea de ultimo en la tabla y no en el principio.



 

Víctor Hugo Espínola Domínguez

unread,
Jan 23, 2014, 8:37:14 PM1/23/14
to publicesvfoxpro
Hola Idalberto

El concepto del RECNO() es exclusivo de VFP, en la mayoría de los SGBD no se sabe, y lo que es más importante no deberías necesitar saber el orden en que son insertados los registros, debes usar ORDER BY para forzar el ordenamiento de la consulta.

Por otro lado, lo que ves en el grid es el orden dentro del cursor VFP asociado al grid y no el orden de los registros en la tabla.

Saludos,
Víctor.
Lamabaré - Paraguay.

mpulla

unread,
Jan 23, 2014, 8:51:26 PM1/23/14
to publice...@googlegroups.com
Hola Idalberto.

Sql Server no garantiza el orden de los registros si no utiliza Order By

Ademas tienes que tener en cuenta como Sql Server almacena la data

Sería bueno saber la estructura completa de tu tabla y sus inidices.

Saludos.
Mauricio

Carlos Miguel FARIAS

unread,
Jan 24, 2014, 5:58:01 AM1/24/14
to Grupo Fox
El indice cluster (racimo) es el mas eficiente para acceso de lectura secuencial (en orden) y al azar (por la forma que trabajan los otros respeto a él).
El indice cluster usa un indice tipo Arbol B, donde los datos están en los nodos ordenados.
Si se procesa secuencialmente, el racimo recupera nodos que ya están ordenados, por lo que es muy rápido.
Los otros indices, en su hoja mas bajo nivel apuntan al cluster (no tienen otra, ya que físicamente, solo el acceso por el cluster garantiza encontrar los datos).
En casos extremos de requerimientos de tiempo de respuesta en consultas ordenadas, conviene que se indexe tipo racimo por un indice que responda al order by de las consultas.
Personalmente, no me gusta el esquema de indices cluster, porque no me parece eficiente al momento de insertar registros, es más, no crearía indices de ese tipo para tablas donde la cantidad de inserciones es muy alta en cantidad de registros y/o concurrencia.
En VFP y en tablas donde no hay indices de tipo racimo (que SQL Server llama montones), los datos agregados se meten en la última hoja, y los indices se acomodan en función de eso.
Cuando una hoja de datos de se llena, se agrega otra y hoja y sigue el proceso (creo que todas las hojas se llenan casi al máximo 100%).
Con un indice tipo racimo, cada registro debe ubicarse en la hoja que determina el orden del indice, si la hoja esta llena, tiene que crear otra hoja (miti y miti), y a su vez, los datos ordenarse dentro de la hoja, si hay muchas inserciones al azar, tendremos muchas hojas llenas solo en un 50% (que sería bastante desperdicio de disco).
En cada caso, y de acuerdo al funcionamiento que se le quiera dar, deberá analizarse cuales son los indices apropiados en cada circunstancia.
Saludos: Miguel, La Pampa (RA)

Reply all
Reply to author
Forward
0 new messages