Modelo base datos

Páginas: 5 (1039 palabras) Publicado: 17 de marzo de 2010
TIPs para programación en T-SQL

Lectura

1. Evita usar SELECT *. Siempre lee solo las columnas que necesitas. Con esto evitas llevar mucha data que no se necesita al cliente, entonces se descongestiona la red y el cliente siente que es mas rápido.
2. Para consultas de listas de registros, usa el operador TOP n. Con esto evitamos llevar muchos registros al cliente. También se descongestionala red y el cliente siente que es mas rápido.
3. En lugar de SET ROWCOUNT n, usa TOP n.
4. Si usas el operador UNION y estás seguro que ambos queries NO tienen registros duplicados, entonces mejor usa UNION ALL, para evitar que implícitamente se haga uso del operador DISTINCT
5. Evita usar SELECT … INTO table_name. Esto bloquerá tablas del sistema. En lugar de esto, crea primero las tablas yluego re-escribe la sentencia como INSERT INTO table_name SELECT ...
6. Si vas a leer data de una sola tabla, evita hacerlo usando vistas que usan otras tablas
7. Al escribir un query usando una vista, evita leer una tabla referenciada en la vista

SELECT member_number, first_name, last_name, room_number
FROM members, vi_members
WHERE members.room_number = vi_members.room_number

( la vistaes:
SELECT member_number, first_name, last_name, room_number
FROM members where state = ‘A’
)

Joins

8. Escribe joins en formato ANSI (usa la clausula JOIN .. ON). Con esto te aseguras de escribir todas las restricciones sin posibilidad de olvidarte de alguna restricción
9. Evita usar la misma tabla mas de una vez en un solo query. Para mejorar esto, usa tablas temporales10. Prefiere usar un join en lugar de un sub-query

Por ejemplo en lugar de usar
SELECT member_number, first_name, last_name, room_number
FROM members
WHERE room_number IN (SELECT rooms.room_number FROM rooms)

Usa
SELECT member_number, first_name, last_name, room_number
FROM members m
INNER JOIN rooms r ON m.room_number = r.room_number

11. En el caso de que decidas usar queriesanidados, siempre califica los campos del subquery con la tabla correspondiente

SELECT member_number, first_name, last_name, room_number
FROM members
WHERE room_number IN (SELECT rooms.room_number FROM rooms)

12. En lugar de usar una sentencia con muchos joins donde las tablas involucradas son grandes, mejor crea una tabla temporal con los datos de la tabla principal (códigos) y luego actualizaesta tabla haciendo joins con las tablas secundarias.
13. En lugar de usar la cláusula IN conjuntamente con un sub-query, usa una sentencia JOIN

Por ejemplo en lugar de usar
SELECT pub_name
FROM dbo.Publishers
WHERE pub_id IN
(SELECT Titles.pub_id FROM Titles)

Usa
SELECT pub_name
FROM dbo.Publishers JOIN dbo.Titles
ON Titles.pub_id = Publishers.pub_id

Where14. Evita usar funciones sobre columnas en la cláusula WHERE

Por ejemplo en lugar de usar
SELECT member_number, first_name, last_name
FROM members
WHERE DATEDIFF(yy,datofbirth,GETDATE()) > 21

Usa
SELECT member_number, first_name, last_name
FROM members
WHERE dateofbirth < DATEADD(yy,-21,GETDATE())

15. Si usas LIKE en la cláusula WHERE, trata de usar por lo menos 3 caracteres adelantecomo “abc%”
16. Si usas LIKE en la cláusula WHERE, evita usar el operador % al principio: “%abc”
17. Donde sea posible usa la cláusula BETWEEN en lugar de IN

Por ejemplo en lugar de usar
SELECT customer_number, customer_name
FROM customer
WHERE customer_number in (1000, 1001, 1002, 1003, 1004)

Usa
SELECT customer_number, customer_name
FROM customer
WHERE customer_number BETWEEN 1000and 1004

18. Evita usar concatenaciones en las cláusulas WHERE
19. Evita usar los operadores OR, NOT IN, NOT BETWEEN, , NOT EXISTS, NOT LIKE, LIKE ‘%ABC’
20. Si un query tiene uno a mas operadores OR, considera reescribir el query en varios queries y une los resultados usando el operador UNION. Recuerda de usar “UNION ALL”, si es posible.

Por ejemplo en lugar de usar
SELECT employeeID,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Modelos de datos de las bases de datos
  • Excel Base De Datos Modelo
  • Ejercicio Modelamiento de base de datos
  • Modelos emergentes de base de datos
  • Modelo jerarquico-base de datos
  • Cronograma y Modelos de base de datos
  • Modelos emergentes de bases de datos
  • Modelo de bases de dato

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS