Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-08-2018
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Peso de minusculas y mayusculas

Hola a todos. Fijense que estoy haciendo un sistema con Delphi 6 y firebird 2.1 que trabajara remotamente sobre internet. La base de datos estara en un servidor LINUX y las estaciones de trabajo se conectaran a distancia usando VPN, y obviamente hay que ahorrar lo mas posible en el trafico asi que he sido lo mas cuidadoso posible en todas mis consultas, incluso en algunas vistas muestro solo una parte de valor de los campos VARCHAR usando SUBSTRING. Sin embargo me pregunto si hay una diferencia en el peso de los paquetes que viajen por la red si las letras son mayusculas o minusculas. Por ejemplo en los reportes que son varios registros y en los que se incluyen nombre de cliente mando solo los primeros 30 caracteres del valor de dicho campo, pero al dueño del futuro sistema le gusta escribir todo en mayusculas pero hay ocasiones que puedo mostrar informacion en minusculas. Asi que mi duda es ¿hay una ventaja en velocidad el que envie los caracteres en minusculas (LOWER) cuando originalmente estan en mayusuculas en la base de datos? O realmente no hay ninguna ganancia en velocidad?

Agradezco de antemano su tiempo.
__________________
Salu2
Responder Con Cita
  #2  
Antiguo 07-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cada letra ocupa un byte, ya sea minúscula o mayúscula.
Y si usas unicode (utf-8) también será lo mismo para interpretar la misma letra en minúscula o mayúscula.
Responder Con Cita
  #3  
Antiguo 07-08-2018
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Mil gracias creo que ya peco de querer ahorrar jajaja
__________________
Salu2
Responder Con Cita
  #4  
Antiguo 08-08-2018
Alex Mireles Alex Mireles is offline
Miembro
NULL
 
Registrado: nov 2014
Posts: 35
Poder: 0
Alex Mireles Va por buen camino
Aqui lo que juega son los PAQUETES de datos que se mandan por la red (LAN , WAN, MAN..etc). (Hablando de una red TCP/IP que es la mas comun).

Cada paquete de datos tiene un tamaño especifico de BYTES, y ahi mismo va inmerso el protocolo de comunicación, que es el que valida la entrega completa de los paquetes de datos al destinatario del otro punto de la red (El protocolo puede pedir el re-envio de ciertos paquetes si hubo perdida o latencia y eso.... tu no lo controlas). Aclarado lo anterior, si mandas mayúsculas o minúsculas no afecta porque el paquete de datos que viajara en la CAPA DE TRANSPORTE no discrimina si el paquete es chico o grande, finalmente serán muchos micro paquetes los que se envian a pesar de que mandes cadenas vacías o cadenas muy largas. Lo que debes de valorar es el tamaño del result set (conjunto de resultados de tu query) que viaja por la red.. Una practica recomendable es tener las tablas de catálogos y de poca transaccionalidad del lado del cliente, para eso puedes usar el objeto de ClientDataSet para optimizar los tiempos de consulta de datos de lado de cliente..

SALUDOS.
skype: alex-mireles
Responder Con Cita
  #5  
Antiguo 08-08-2018
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Cita:
Empezado por Alex Mireles Ver Mensaje
Aqui lo que juega son los PAQUETES de datos que se mandan por la red (LAN , WAN, MAN..etc). (Hablando de una red TCP/IP que es la mas comun).

Cada paquete de datos tiene un tamaño especifico de BYTES, y ahi mismo va inmerso el protocolo de comunicación, que es el que valida la entrega completa de los paquetes de datos al destinatario del otro punto de la red (El protocolo puede pedir el re-envio de ciertos paquetes si hubo perdida o latencia y eso.... tu no lo controlas). Aclarado lo anterior, si mandas mayúsculas o minúsculas no afecta porque el paquete de datos que viajara en la CAPA DE TRANSPORTE no discrimina si el paquete es chico o grande, finalmente serán muchos micro paquetes los que se envian a pesar de que mandes cadenas vacías o cadenas muy largas. Lo que debes de valorar es el tamaño del result set (conjunto de resultados de tu query) que viaja por la red.. Una practica recomendable es tener las tablas de catálogos y de poca transaccionalidad del lado del cliente, para eso puedes usar el objeto de ClientDataSet para optimizar los tiempos de consulta de datos de lado de cliente..

SALUDOS.
skype: alex-mireles
Buen consejo y explicacion. Gracias muchas
__________________
Salu2
Responder Con Cita
  #6  
Antiguo 08-08-2018
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Y si usas unicode (utf-8) también será lo mismo para interpretar la misma letra en minúscula o mayúscula.
No exactamente:

https://www.joelonsoftware.com/2003/...ts-no-excuses/

UTF-8 es un encoding *variable* que puede ser de 1 a 6 bytes. Solo que los caracteres de ASCII son siempre en 1 y los mas complejos van creciendo hasta 6, solo cuando es necesario. Lo que significa que es muy eficiente!.

---

Si abres el mapa de caracteres en windows/osx/linux veras que las letras realmente son numeros en una tabla.

Cita:
a= 97
A = 65
Lo que vemos como letras, son realmente fuentes. Fuentes son *imagenes*.

Por la red o en disco SOLO VIAJAN BITS. Es todo. Todo lo demas es como se hace el encoding/decoding.

Si quieres hacer un encoding muy pequeño, aplicas tecnicas de *compresion*.

Asi, que lo mas simple y facil NO ES micro-optimizar tu BD. Tu BD debe ser *semanticamente correcta*. Guarda string en strings, dates en dates (no como algunos animales que guardan dates en strings!), ints en ints y asi sucesivamente. El deber de un RDBMS es la *integridad de datos*. Asi que deja a tu BD tranquila, que ademas cualquier motor moderno es una bestia de eficiencia.

Por lo tanto, solo tienes que "preocuparte" en reducir el tamaño de los paquetes EN TRANSITO. Select solo de las columnas necesarias, filtrar/preprocesar resultados (para eso es SQL).

De aqui, aplica un modelo de compresion a tus paquetes (como gzip) y ya. Hay mas que se puede hacer pero entonces se pone esoterica la cosa, y es poco probable que lo necesites.
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 08-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mamcx Ver Mensaje
No exactamente:
No seas tan quisquilloso
Una a ocupará lo mismo que una A.
Una b ocupará lo mismo que una B.
En el resto de cosas que dices, por supuesto, estoy de acuerdo
Responder Con Cita
  #8  
Antiguo 09-08-2018
Tcmn Tcmn is offline
Miembro
 
Registrado: sep 2004
Posts: 152
Poder: 20
Tcmn Va por buen camino
Muchas gracias por información e interés macmx y Casimiro
__________________
Salu2
Responder Con Cita
  #9  
Antiguo 10-08-2018
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No seas tan quisquilloso
Una a ocupará lo mismo que una A.
Una b ocupará lo mismo que una B.
En el resto de cosas que dices, por supuesto, estoy de acuerdo



Un vaso es un vaso y un plato es un plato (Rajoy dixit)


Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
convertir mayusculas y minusculas. Solo la primera letra en Mayusculas Delphius MS SQL Server 2 21-07-2007 03:20:22
Validar con mayusculas y minusculas marceloalegre SQL 2 24-06-2005 00:06:05
Mayusculas/minusculas Collates juanpe Firebird e Interbase 2 14-06-2005 14:12:22
Índices mayúsculas/minúsculas sur-se Firebird e Interbase 4 20-09-2004 21:35:31
Mayusculas Y Minusculas jberaza Firebird e Interbase 1 24-05-2003 19:44:32


La franja horaria es GMT +2. Ahora son las 00:07:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi