CREAR DATOS PARA PRUEBAS

21/05/2007 - 18:18 por Cristian Meneses | Informe spam
Buenas a todos
Tengo una tabla con la siguiente estructura con el fin de almacenar
'templates' de huellas digitales.
La estructura:
PK [IDLegajo] [int] NOT NULL ,
PK [IDDedo] [tinyint] NOT NULL ,
[Template] [nchar] (3000) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[Ancho] [int] NULL

Un ejemplo del contenido del campo Template...
mspZVpSdnB1DwQp4oUlBDn6qTEERC7FoAQSaL4mBAiW8kYEHnjt7wQOgE3gBASE0YEEHlK2AQQKcj4EBASAvd4EFJRs7wQsCojJBD
+MsWUEOibVXwRWEjFHBCBKVMEEJ5rEpAQrBP0pBCLC4QkEOPjMcgQS3uj8BB7qwO4ETSKUzQRBYoyzBC1eXN8EHb5JYgQmJC2WBB44EUYEKh6ZMARF7jzpBCnCeigECm0WPgQeXyE9BBCfCQ0EHLbdUgStv

Desearia generar 10000 registros aleatorios para hacer pruebas.. Es
posible?
La idea es probar la velocidad de comparacion que tiene una funcion de
una dll que llamo desde mi sistema, pero requiero grandes cantidades
de datos para lograrlo...
Y por ultimo.. es recomendable hacer un Indice sobre el campo
Template? Que me sugieren?
Muchas gracias por adelantado

Cristian Meneses

Preguntas similare

Leer las respuestas

#1 John J. Bocachica V.
21/05/2007 - 20:04 | Informe spam
Bueno, generar informacionde forma aleatoria en ese tipo de informacion no
lo veo muy viable, a menos tal que te consigas un algoritmo que te genere
informaion valida, lo que tampoco veo muy viable ya que seria una forma de
"clonar" huellas digitales.. supongo que lo que estas usando es algun tipo
de algoritmo de una sola via en donde solamente almacenas el stream de la
huella, pero tengo una pregunta... puedes desde esta huella generar la
imagen de la misma?... si fuese asi entonces yo haria una prueba cambiando
una letra y mirando si aparece otra huella..., con respecto a el hecho de
crear un indice sobre la huella podria ser util si y solo si usas ese texto
dentro de tus busquedas, al tratarse de una huella digital es unica lo que
"garantizaria" la unicidad del indice, sin embargo teniendo en cuenta el
tamaño del mismo debes analizar cuanto te puede costar tener ese indice en
cuanto a almacenamiento y generacion... otra cosa mas, te sugiero que no
uses SQL_Latin1_General_CP1_CI_AS ya que se trata de un stream unico y estoy
mas que seguro que

mspZVpSdnB1DwQp4oUlBDn6qTEERC7FoAQSaL4mBAiW8kYEHnjt7wQOgE3gBASE0YEEHlK2AQQKcj4EBASAvd4EFJRs7wQsCojJBD
+MsWUEOibVXwRWEjFHBCBKVMEEJ5rEpAQrBP0pBCLC4QkEOPjMcgQS3uj8BB7qwO4ETSKUzQRBYoyzBC1eXN8EHb5JYgQmJC2WBB44EUYEKh6ZMARF7jzpBCnCeigECm0WPgQeXyE9BBCfCQ0EHLbdUgStv

no es igual a

MspZVpSdnB1DwQp4oUlBDn6qTEERC7FoAQSaL4mBAiW8kYEHnjt7wQOgE3gBASE0YEEHlK2AQQKcj4EBASAvd4EFJRs7wQsCojJBD
+MsWUEOibVXwRWEjFHBCBKVMEEJ5rEpAQrBP0pBCLC4QkEOPjMcgQS3uj8BB7qwO4ETSKUzQRBYoyzBC1eXN8EHb5JYgQmJC2WBB44EUYEKh6ZMARF7jzpBCnCeigECm0WPgQeXyE9BBCfCQ0EHLbdUgStV

Entonces seria mejor usar SQL_Latin1_General_CP1_CS_AS

John Bocachica
SQL Server MVP

"Cristian Meneses" wrote in message
news:
Buenas a todos
Tengo una tabla con la siguiente estructura con el fin de almacenar
'templates' de huellas digitales.
La estructura:
PK [IDLegajo] [int] NOT NULL ,
PK [IDDedo] [tinyint] NOT NULL ,
[Template] [nchar] (3000) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[Ancho] [int] NULL

Un ejemplo del contenido del campo Template...
mspZVpSdnB1DwQp4oUlBDn6qTEERC7FoAQSaL4mBAiW8kYEHnjt7wQOgE3gBASE0YEEHlK2AQQKcj4EBASAvd4EFJRs7wQsCojJBD
+MsWUEOibVXwRWEjFHBCBKVMEEJ5rEpAQrBP0pBCLC4QkEOPjMcgQS3uj8BB7qwO4ETSKUzQRBYoyzBC1eXN8EHb5JYgQmJC2WBB44EUYEKh6ZMARF7jzpBCnCeigECm0WPgQeXyE9BBCfCQ0EHLbdUgStv

Desearia generar 10000 registros aleatorios para hacer pruebas.. Es
posible?
La idea es probar la velocidad de comparacion que tiene una funcion de
una dll que llamo desde mi sistema, pero requiero grandes cantidades
de datos para lograrlo...
Y por ultimo.. es recomendable hacer un Indice sobre el campo
Template? Que me sugieren?
Muchas gracias por adelantado

Cristian Meneses

Respuesta Responder a este mensaje
#2 Cristian Meneses
21/05/2007 - 21:34 | Informe spam
Estimado John
Tal como dices, el texto es creado por un algoritmo propio del SDK del
fabricante del lector.
La idea es generar codigo no valido... texto aleatorio de unos 1000
caracteres por ej y probar ingresando mi huella que tan rapido se
comporta la funcion de comparacion del fabricante. Podria ser incluso
una secuencia de numeros mezclados con letras. Con respecto a tu
pregunta "puedes desde esta huella generar la imagen de la misma?" te
digo que no que yo sepa, de hecho he buscado y parece no ser asi, en
ese caso deberia almacenar una imagen a modo 'foto de huella' con
fines informativos solamente.

"Con respecto a el hecho de
crear un indice sobre la huella podria ser util si y solo si usas ese
texto
dentro de tus busquedas, al tratarse de una huella digital es unica lo
que
"garantizaria" la unicidad del indice, sin embargo teniendo en cuenta
el
tamaño del mismo debes analizar cuanto te puede costar tener ese
indice en
cuanto a almacenamiento y generacion..."
Dado la sencillez de la estructura de la tabla mi idea era hacer una
busqueda del tipo SELECT * FROM Templates WHERE Templates 'mspZVpSdnB1DwQp4oUlBDn6qTEERC7FoAQSaL4.". Ahora bien, como puedo
medir este costo de almacenamiento y velocidad de busqueda mediante el
indice?

En cuanto al tipo de nchar Latin etc.. el valor guardado es el dado
por el algoritmo del fabricante y para su comparacion utilizaria otro
algoritmo para comparar cadenas.. no veo conflicto alguno, de hecho
funciona perfectamente.
Solo me gustaria probar la velocidad de comparacion de tal algoritmo
con mi tabla.
Hay entonces forma de generar tales registros sin necesidad de que
sean realmente verdaderos, mas alla del algoritmo que lo genera?
Muchas gracias por tu tiempo

Cristian
Respuesta Responder a este mensaje
#3 John J. Bocachica V.
21/05/2007 - 21:51 | Informe spam
Hola, para medir los tiempos puedes mirar los planes de ejecucion,
igualmente el IO y las estadisticas.

Bueno, en cuanto a la generacion de informacion de forma aleatoria en sql
Server puedes usar un while y usando las funciones rand podrias lograr algo,
sin embargo yo usaria excel para crear las cadenas aleatorias igualmente
usando las funciones rand y quiza mezclandolas con un char(x) para lograr
usar unicamente numeros y de alli lograr las letras; bueno, luego haria un
bulk copy para meter esta info en SQL Server

Para mirar el costo de creacion de los indices puedes usar antes de tu
consulta

Set statistics io on
Set statistics time on

Y probar lado a lado los costos con y sin indices.

John

"Cristian Meneses" wrote in message
news:
Estimado John
Tal como dices, el texto es creado por un algoritmo propio del SDK del
fabricante del lector.
La idea es generar codigo no valido... texto aleatorio de unos 1000
caracteres por ej y probar ingresando mi huella que tan rapido se
comporta la funcion de comparacion del fabricante. Podria ser incluso
una secuencia de numeros mezclados con letras. Con respecto a tu
pregunta "puedes desde esta huella generar la imagen de la misma?" te
digo que no que yo sepa, de hecho he buscado y parece no ser asi, en
ese caso deberia almacenar una imagen a modo 'foto de huella' con
fines informativos solamente.

"Con respecto a el hecho de
crear un indice sobre la huella podria ser util si y solo si usas ese
texto
dentro de tus busquedas, al tratarse de una huella digital es unica lo
que
"garantizaria" la unicidad del indice, sin embargo teniendo en cuenta
el
tamaño del mismo debes analizar cuanto te puede costar tener ese
indice en
cuanto a almacenamiento y generacion..."
Dado la sencillez de la estructura de la tabla mi idea era hacer una
busqueda del tipo SELECT * FROM Templates WHERE Templates 'mspZVpSdnB1DwQp4oUlBDn6qTEERC7FoAQSaL4.". Ahora bien, como puedo
medir este costo de almacenamiento y velocidad de busqueda mediante el
indice?

En cuanto al tipo de nchar Latin etc.. el valor guardado es el dado
por el algoritmo del fabricante y para su comparacion utilizaria otro
algoritmo para comparar cadenas.. no veo conflicto alguno, de hecho
funciona perfectamente.
Solo me gustaria probar la velocidad de comparacion de tal algoritmo
con mi tabla.
Hay entonces forma de generar tales registros sin necesidad de que
sean realmente verdaderos, mas alla del algoritmo que lo genera?
Muchas gracias por tu tiempo

Cristian
Respuesta Responder a este mensaje
#4 Jose Mariano Alvarez
22/05/2007 - 02:37 | Informe spam
En el post ,
DIJO .
Buenas a todos
Tengo una tabla con la siguiente estructura con el fin de almacenar
'templates' de huellas digitales.
La estructura:
PK [IDLegajo] [int] NOT NULL ,
PK [IDDedo] [tinyint] NOT NULL ,
[Template] [nchar] (3000) COLLATE SQL_Latin1_General_CP1_CI_AS NOT
NULL ,
[Ancho] [int] NULL

Un ejemplo del contenido del campo Template...
mspZVpSdnB1DwQp4oUlBDn6qTEERC7FoAQSaL4mBAiW8kYEHnjt7wQOgE3gBASE0YEEHlK2AQQKcj4EBASAvd4EFJRs7wQsCojJBD
+MsWUEOibVXwRWEjFHBCBKVMEEJ5rEpAQrBP0pBCLC4QkEOPjMcgQS3uj8BB7qwO4ETSKUzQRBYoyzBC1eXN8EHb5JYgQmJC2WBB44EUYEKh6ZMARF7jzpBCnCeigECm0WPgQeXyE9BBCfCQ0EHLbdUgStv

Desearia generar 10000 registros aleatorios para hacer pruebas.. Es
posible?
La idea es probar la velocidad de comparacion que tiene una funcion de
una dll que llamo desde mi sistema, pero requiero grandes cantidades
de datos para lograrlo...
Y por ultimo.. es recomendable hacer un Indice sobre el campo
Template? Que me sugieren?
Muchas gracias por adelantado

Cristian Meneses






Y que hace la DLL?

Para que quieres el indice?

Me resulta sumamente dificil imaginar que existan 2 lecturas iguales
aunque pases el mismo dedo 1000 veces por el lector.
Creo que la dll debe darte vectores y es probable que eso si puedas
indexar.

Igualmente creo que seria mas interesante usar redes neuronales o algun
algoritmo de data mining como lo bayesianos o clustering disponibles en
Sql server Analysis services para determinar similitudes



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida