Tipos de datos para claves

11/10/2004 - 03:53 por Larissa | Informe spam
Es cierto que las claves primarias deben ser preferiblemente enteras ?

Y que pasa con claves compuestas donde una parte deba ser alfabetica ?


Larissa

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
11/10/2004 - 04:22 | Informe spam
Hola, es preferible por un tema de desempeño!! pero no siempre se puede
hacer eso!!

Ademas estamos hablando de un tunning fino, yo en los sistemas que manejo
(un ERP grande) no tiene indices en campos enteros, y la performance es muy
aceptable


"Larissa" escribió en el mensaje
news:
Es cierto que las claves primarias deben ser preferiblemente enteras ?

Y que pasa con claves compuestas donde una parte deba ser alfabetica ?


Larissa


Respuesta Responder a este mensaje
#2 Larissa
11/10/2004 - 04:36 | Informe spam

Ademas estamos hablando de un tunning fino, yo en los sistemas que manejo
(un ERP grande) no tiene indices en campos enteros, y la performance es


muy
aceptable




Ay... estos terminos de estos chicos :))))) que es un "tunning fino" ?


Si tengo una clave compuesta por un campo alfanumerico mas otro entero, es
tan eficiente como si fuera un simple entero ?
Respuesta Responder a este mensaje
#3 Adrian D. Garcia
11/10/2004 - 05:00 | Informe spam
Algo a tener en cuenta en las claves alfanumericas: La comparacion de 2
strings (cadenas de caracteres) en SQL Server no es tan directa como parece
a simple vista ya que aqui interviene la famosa "intercalacion" que tienen
asociadas cada cadena. Por ejemplo si la intercalacion esta definida como
insensible a los acentos, el algoritmo de comparacion debe tener en cuenta
que "Garcia" es igual a "García". Eso significa que para comparar cada
caracter hay un algoritmo que se aplica. Esto no pasa con las claves
enteras.
Ahora, cuanto afecta esto realmente en la performance? Pues habria que
realizar un test. Si uno es muy quiquilloso con esto lo que puede hacer es
definir la intercalacion "binaria" a las columnas alfanumericas que se
utilicen dentro de las claves, en ese caso no hay algoritmo sino comparacion
directa.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Larissa" wrote in message
news:
>
> Ademas estamos hablando de un tunning fino, yo en los sistemas que


manejo
> (un ERP grande) no tiene indices en campos enteros, y la performance es
muy
> aceptable
>

Ay... estos terminos de estos chicos :))))) que es un "tunning fino" ?


Si tengo una clave compuesta por un campo alfanumerico mas otro entero, es
tan eficiente como si fuera un simple entero ?


Respuesta Responder a este mensaje
#4 Javier Loria
11/10/2004 - 17:34 | Informe spam
Hola:
En mi opinion con frecuencia los desarrolladores confunden el concepto
de Llave(Clave) Primaria con el de Indice Clustered (Agrupado).
La llave primaria es un concepto logico de BD, que el servidor de MS-SQL
implementa con un indice que por comportamiento predeterminado es clustered,
pero que puede no serlo.
Entonces lo que se llama una llave candidata a primaria debe ser un
conjunto de atributos que distinguen a una fila de otra y que no permite
nulos, y que ningun sub-conjunto de estos atributos sean a su vez un llave
candidata. Si tienes varias opciones el disenador escoge cual.
Por ejemplo en un sistema con multiples companias la tabla de empleados
puede tener como posible llaves candidatas: CodigoEmpleado/Compania y tal
vez Pais/NumeroIdentificacion. Cualquiera de las dos puede ser llave
primaria ya que las 2 identifican plenamente una fila de otra.
El tema del desemenpeno esta asociado con los indices, normalmente es
deseable que los indices sean pequenos. Cual sera el indice clustered
recomendado para esta tabla, exige mucho mas informacion, cuantos datos,
cuales columnas, como se usa la tabla, la distribucion de los datos, etc.
Saludos,



Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Larissa" wrote in message
news:
Es cierto que las claves primarias deben ser preferiblemente enteras ?

Y que pasa con claves compuestas donde una parte deba ser alfabetica ?


Larissa


Respuesta Responder a este mensaje
#5 Maximiliano D. A.
11/10/2004 - 18:14 | Informe spam
jejejm un tunning fino es cuando buscas aumentar la performance pero en
ajuste fino :-), yo antes de preocuparme esto de los indices (si son enteros
o no) miraria otros factores que seguramente aumentarian la performance.

Por ej:

1) Estas usando Cursores?
2) Tienes buenos indices generados.
3) Le haces un mantenimiento a la BDD?
4) Usas transacciones grandes?
5) Usas tablas temporales?
6) Tienes dividio la BDD - Archivo Log en distintos discos fisicos ?

Como veras hay mucha tela por cortar :-)


"Larissa" escribió en el mensaje
news:
>
> Ademas estamos hablando de un tunning fino, yo en los sistemas que


manejo
> (un ERP grande) no tiene indices en campos enteros, y la performance es
muy
> aceptable
>

Ay... estos terminos de estos chicos :))))) que es un "tunning fino" ?


Si tengo una clave compuesta por un campo alfanumerico mas otro entero, es
tan eficiente como si fuera un simple entero ?


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