2010-01-26 19 views
7

estoy haciendo esta pregunta en StackOverflow porque es el lugar correcto para preguntar ...trucos y consejos sobre la optimización de consultas [SQL Server 2005]

Sé que es un tema muy amplio al principio, pero algunas pequeñas las que puede ser realmente útil ...

podría ser útil para los desarrolladores jóvenes como yo a saber acerca de la optimización de consultas ..

Algunos trucos y consejos sobrede optimización de consultas en SQL Server 2005 ..

Respuesta

2

Sobre la base de preguntas aquí

  • precedencia Evitar el tipo de datos (por ejemplo, siempre es mucho igual por igual, incluyendo la longitud de varchar etc)

por ejemplo

...WHERE tinyintcol = @intvalue 
means a conversion of the column and invalidates an index 
...WHERE tinyintcol = @tinyintvalue 
  • Evita funciones en columnas en WHERE cláusulas

por ejemplo

...WHERE DATEADD(day, 1, MyCol) > GETDATE() 
should be 
...WHERE MyCol > DATEADD(day, -1, GETDATE()) 
  • índices Cubriendo

  • GUID: índices no agrupados

1

El lugar más obvio para comenzar si tiene una consulta lenta es asegurarse de que utiliza un índice.

+0

en la gestión studio, ejecute el comando ** set showplan_all on ** luego ejecute su consulta. La consulta no se ejecutará, pero el plan de ejecución se abandonará. Mire en esta salida para la palabra * scan * aquí es donde no se usa un índice. –

1
  • tratar de reducir el número total de combinaciones si es posible
  • C onsidere los tamaños de la tabla utilizadas en la consulta
  • utilizan índices, ya que son de su amigo
  • Cuidado con los tipos que está utilizando como claves (int a int es una comparación mucho más fácil que dos varchars)
  • Evitar el uso de ' como' consultas en lo posible tratar de obtener el valor de uso de una igualdad primera
1

para las consultas que puedo añadir a gbn, recursive y smaclell los siguientes:

  • tratar de minimizar subconsultas, se une
  • evitar cualquier bloqueos excessing, el ahorro de los puestos de control
  • pragmas utilizar para establecer la creación de tabla temporal en memoria
  • pragmas utilizar para establecer síncronos OFF
  • pragmas utilizar para deshabilitar disparadores (si es posible)
  • incrustar INSERT y DELETE consultas en las transacciones
  • veces UPDATE es más lento para múltiples registros que acaba de insertar de nuevo. Así aconsejó está a seleccionar, eliminar, de actualizar mediante programación los registros y reinserte con las claves existentes (cuidado con los CASCADE y TRIGGERS)
  • cheque con sus administradores de sistemas que caché de base de datos debe estar en ON
Cuestiones relacionadas