Identity (2)

30/07/2004 - 13:47 por Pablo Fabian Savino | Informe spam
Hola, graicas por las respuestas, he cambiado mis Identity a un Numerico de
10, porque la verdad que reformar todas las tablas no me causaba gracia
jejeje
Piensan que un Numerico de 10 me de mas tiempo hasta que todo reviente y
para cuando eso pase ya tener la DB reformada?
creo que si, no?

Saludos

Preguntas similare

Leer las respuestas

#6 Eladio Rincón
31/07/2004 - 02:26 | Informe spam
Hola Pablo,

no he trabajado nunca con Sybase; sobre tu comentario tengo una pregunta:
en Sybase, cuando el "contador" de la columna identity llegaba a su límite, ¿se intentaban reutilizar los valores "libres"? es que la filosofía del identity en SServer es totalmente a la que estoy interpretando ...


Eladio Rincón
SQL Server MVP, PASS Spanish Group
Solid Quality Learning Iberoamericana
http://www.SolidQualityLearning.com

http://www.siquelnet.com
"Comparte lo que sabes, aprende lo que no sepas." FGG


Pablo Fabian Savino wrote:
Carlos
he leido el articulo en el web que me paso Maxi.
pero no te parece que hay algo malo en el Identity, quiero
decir, si mi ultimo identity fue el 6 , porque cuando borro la tabla
(borro todos los registros ok) e inserto uno nuevo, me pone como el 7
en identity y deberia ser 1, no?

No veo la logica de esto, si borre todo para que quiero
que siga el consecutivo, de esta forma reventaria la tabla en algun
momento, dado que nunca estaria reiniciandoce a menos que le haga un
drop y volverla a crear, no?

Al contrario de Sql server, en Sybase el identity se
reinicia a 0 (y no uno) cuando llegas a un valor exajeradamente alto
para un int, quedandome claro que en sysbase si me eran utiles los
identitys


salute



"Carlos Sacristan" <csacristan ARROBA mvps.org> wrote in message
news:
Te paso un articulo de Carlos Sacristan,


Sólo por no atribuirme méritos que no son míos, puntualizo que
lo único que hice fue recopilar la opinión que se dio acerca de este
interesante tema en un hilo muy largo

;-)



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL
Respuesta Responder a este mensaje
#7 Eladio Rincón
31/07/2004 - 03:03 | Informe spam
desde luego ... lo que hace la curiosidad:

por adelantado; no he trabajado nunca con Sybase:

http://www.sypron.nl/ttr/updates.html
Resetear Identity en Sybase:
sp_chgattribute table_name, 'identity_burn_max', 0,
'new-identity-value'


http://www.sypron.nl/idgaps.html
Problema con los identities en Sybase; parece se que cuando se desea parar el servicio de Sybase with no wait hay saltos bastante grandes.

Pero claro hay una solución y una explicación al problema:
http://www.sypron.nl/idgaps_txt.html#extra
Curioso ... Sybase (por lo menos hasta la versión 12 ... más adelante no he leido más), cuando genera un identity, el último valor identity generado (no quiero decir el registro insertado), digamos "el contador", no lo guarda en disco, lo tiene en memoria y por lo tanto cada vez que se genera un valor nuevo, no se necesita I/O para conocer el valor que se va a insertar; sin embargo, si se hace shutdown with nowait, el valor en memoria no se guarda en disco y por lo tanto se pierde; cuando se reinicie el servicio se buscará otro valor aleatorio para esa columna (supongo que la primera vez que se vaya a hacer una inserción y deberá hacer alguna comprobación para garantizar que será único) ...

Pues bueno, y ¿cómo se soluciona? pues con un valor configurable que indica cada cuanto tiempo se guarda el último identity insertado en la tabla; por ejemplo, si tengo definido un gap de 10, cada 10 veces guardará en la primera página de la tabla el valor insertado ...

Interesante, verdad? :-)

Eladio Rincón
SQL Server MVP, PASS Spanish Group
Solid Quality Learning Iberoamericana
http://www.SolidQualityLearning.com

http://www.siquelnet.com
"Comparte lo que sabes, aprende lo que no sepas." FGG


Eladio Rincón wrote:
Hola Pablo,

no he trabajado nunca con Sybase; sobre tu comentario tengo una
pregunta:
en Sybase, cuando el "contador" de la columna identity llegaba a su
límite, ¿se intentaban reutilizar los valores "libres"? es que la
filosofía del identity en SServer es totalmente a la que estoy
interpretando ...



Pablo Fabian Savino wrote:
Carlos
he leido el articulo en el web que me paso Maxi.
pero no te parece que hay algo malo en el Identity,
quiero decir, si mi ultimo identity fue el 6 , porque cuando borro
la tabla (borro todos los registros ok) e inserto uno nuevo, me pone
como el 7 en identity y deberia ser 1, no?

No veo la logica de esto, si borre todo para que quiero
que siga el consecutivo, de esta forma reventaria la tabla en algun
momento, dado que nunca estaria reiniciandoce a menos que le haga un
drop y volverla a crear, no?

Al contrario de Sql server, en Sybase el identity se
reinicia a 0 (y no uno) cuando llegas a un valor exajeradamente alto
para un int, quedandome claro que en sysbase si me eran utiles los
identitys


salute



"Carlos Sacristan" <csacristan ARROBA mvps.org> wrote in message
news:
Te paso un articulo de Carlos Sacristan,


Sólo por no atribuirme méritos que no son míos, puntualizo que
lo único que hice fue recopilar la opinión que se dio acerca de este
interesante tema en un hilo muy largo

;-)



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL
Respuesta Responder a este mensaje
#8 Pablo Fabian Savino
31/07/2004 - 03:41 | Informe spam
Si, en Sybase se re-utilizaban los valores que alguna vez se hubieran
borrado, pero les digo que el valor INT de sybase es exajeradamente
grande!!!!!!!!! con decir que yo inserte 4 millones de registros en una
tabla y el identity jamas desbordo!!!!

y luego del desborde, sybase Reinicia desde 0 el identity y NO me pregunten
como hace para que no de dubplicado en caso que se repita el identity porque
no lo se, lo que se por ahi que internamente sybase le agrega un numero al
identity, de esta forma es como infinito.





"Eladio Rincón" wrote in message
news:
Hola Pablo,

no he trabajado nunca con Sybase; sobre tu comentario tengo una pregunta:
en Sybase, cuando el "contador" de la columna identity llegaba a su límite,
¿se intentaban reutilizar los valores "libres"? es que la filosofía del
identity en SServer es totalmente a la que estoy interpretando ...


Eladio Rincón
SQL Server MVP, PASS Spanish Group
Solid Quality Learning Iberoamericana
http://www.SolidQualityLearning.com

http://www.siquelnet.com
"Comparte lo que sabes, aprende lo que no sepas." FGG


Pablo Fabian Savino wrote:
Carlos
he leido el articulo en el web que me paso Maxi.
pero no te parece que hay algo malo en el Identity, quiero
decir, si mi ultimo identity fue el 6 , porque cuando borro la tabla
(borro todos los registros ok) e inserto uno nuevo, me pone como el 7
en identity y deberia ser 1, no?

No veo la logica de esto, si borre todo para que quiero
que siga el consecutivo, de esta forma reventaria la tabla en algun
momento, dado que nunca estaria reiniciandoce a menos que le haga un
drop y volverla a crear, no?

Al contrario de Sql server, en Sybase el identity se
reinicia a 0 (y no uno) cuando llegas a un valor exajeradamente alto
para un int, quedandome claro que en sysbase si me eran utiles los
identitys


salute



"Carlos Sacristan" <csacristan ARROBA mvps.org> wrote in message
news:
Te paso un articulo de Carlos Sacristan,


Sólo por no atribuirme méritos que no son míos, puntualizo que
lo único que hice fue recopilar la opinión que se dio acerca de este
interesante tema en un hilo muy largo

;-)



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL
Respuesta Responder a este mensaje
#9 ulises
31/07/2004 - 07:02 | Informe spam
Bueno en SQL Server puedes usar bigint que es un numero con 19 digitos
y si eso es insuficiente puedes definirlo como DECIMAL(38,0) que te
almacenaría hasta con 38 dígitos.

Saludos,
Ulises

On Fri, 30 Jul 2004 19:41:58 -0600, "Pablo Fabian Savino"
wrote:

Si, en Sybase se re-utilizaban los valores que alguna vez se hubieran
borrado, pero les digo que el valor INT de sybase es exajeradamente
grande!!!!!!!!! con decir que yo inserte 4 millones de registros en una
tabla y el identity jamas desbordo!!!!
Respuesta Responder a este mensaje
#10 Pablo Fabian Savino
31/07/2004 - 07:07 | Informe spam
Gracias Ulises, por las dudas lo puse como numerico de 10, es solo hasta
cambiar esta situacion y no queria que rebentara antes de tiempo je

Gracias, saludos

"ulises" wrote in message
news:
Bueno en SQL Server puedes usar bigint que es un numero con 19 digitos
y si eso es insuficiente puedes definirlo como DECIMAL(38,0) que te
almacenaría hasta con 38 dígitos.

Saludos,
Ulises

On Fri, 30 Jul 2004 19:41:58 -0600, "Pablo Fabian Savino"
wrote:

>Si, en Sybase se re-utilizaban los valores que alguna vez se hubieran
>borrado, pero les digo que el valor INT de sybase es exajeradamente
>grande!!!!!!!!! con decir que yo inserte 4 millones de registros en una
>tabla y el identity jamas desbordo!!!!

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida