[SQL-Select] Porque no utilizar SELECT *.

25 03 2009

Saludos amigos leyendo un libro de SQL 2008, me encontré con un párrafo muy interesante que creo les será de ayuda a las personas que empiezan con el desarrollo en TSQL, considero que no importa si es SQL 2000, 2005 o 2008.

El símbolo asterisco (*) devuelve todas las columnas para cada fila de tabla o vista en la que se consulta.

Recordemos que, como buena práctica, es mejor hacer referencia explícita a las columnas que deseemos recuperar en lugar de utilizar “SELECT *”.

Referencia explícita.

SELECT Id, Nombre, Apellidos FROM PRB_Usuario

Si desarrolla una aplicación que usa “SELECT *”, la aplicación pueden esperar las mismas columnas (en el mismo orden) de la consulta. Si más adelante se agrega una nueva columna a la tabla o vista, o si se reordenan las columnas de la tabla, se puede romper el llamando a la aplicación, ya que la nueva columna puede provocar un resultado inesperado.

Usar “SELECT *” también puede repercutir negativamente en:

  1. El rendimiento, ya que la consulta puede devolver más datos de los que se necesitan.
  2. El aumento del tamaño del conjunto de resultados y operaciones de recuperación de datos en la instancia de SQL Server.
  3. Para aplicaciones que requieren miles de transacciones por segundo, el número de columnas devueltas en el resultado puede tener un fuerte impacto.

En resumen use mejor: SELECT campo1, campo2, campo3 FROM TUTABLA

Evite usar: SELECT * FROM TUTABLA.

Espero les sea de ayuda, dejen comentarios.

Etiquetas de Technorati: ,

 





[SQL] Instrucciones básicas de SQL 2005.

30 01 2009

Hola amigos, en esta ocasión este post va dedicado a las personas que se inician en las consultas de base de datos y sus operaciones básicas como lo son el INSERT, UPDATE, DELETE y SELECT.

Colocare un ejemplo de cada instrucción:

INSERT:

INSERT INTO <TABLA> (<CAMPOS A INSERTAR>) VALUES (<VALORES A INSERTAR>)

INSERT INTO dbo.USUARIO_SYS (nombre, apellidos, email, pass, fecha_add)
                     VALUES ('JOSE','PEREZ','mail@mail.com','a47825',GETDATE() )

SELECT:

SELECT <CAMPOS> FROM <TABLA>

WHERE <CONDICIONES> ORDER BY <CRITERIOS DE ORDENACION>

SELECT id, nombre, apellidos, email, pass, fecha_add FROM dbo.USUARIO_SYS
WHERE id < 12 ORDER BY nombre, apellidos

UPDATE:

UPDATE <TABLA> SET <CAMPO N> = <VALOR>

WHERE <CONDICION DE ACTUALIZACION>

UPDATE dbo.USUARIO_SYS SET nombre = 'FLORIPONDIO', apellidos = 'MADALENO'
WHERE id = 12

DELETE:

DELETE FROM <TABLA> WHERE <CONDICION DE ELIMINACION>

DELETE FROM dbo.USUARIO_SYS WHERE id = 12

Espero les sea de ayuda, dejen comentarios!!!








Seguir

Get every new post delivered to your Inbox.