FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Mil gracias creo que ya peco de querer ahorrar jajaja
__________________
Salu2 |
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
Cita:
__________________
Salu2 |
#6
|
||||
|
||||
Cita:
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:
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. |
#7
|
||||
|
||||
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
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
|||
|
|||
Muchas gracias por información e interés macmx y Casimiro
__________________
Salu2 |
#9
|
||||
|
||||
Cita:
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. |
|
|
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 |
|