c# sql-server linq-to-sql performance sqlprofiler

c# - SQL Server: Evento no hace referencia a ninguna tabla(advertencia de Tuning Advisor)



sql-server linq-to-sql (3)

Tengo una aplicación escrita en C # que usa Linq2SQL para comunicarse con SQL Server. Hay algunas consultas que se ejecutan un poco (muy) lento, y me imagino que probablemente necesite algunos índices para acelerar las cosas.

Pero realmente no sé cómo hacer eso ni sobre qué, ni dónde, ni qué debería o no debería hacer. Así que pensé que podía preguntar aquí, pero luego descubrí el programa llamado Database Engine Tuning Advisor, que pensé que podría probar primero. El problema es que no puedo hacer que funcione. Probablemente soy yo quien simplemente no sabe cómo hacerlo, pero no puedo entenderlo. Hasta donde puedo ver, he hecho lo que se supone que debo hacer según los archivos de ayuda.

  1. Abra el Analizador de SQL Server .
  2. Comience un nuevo Trace usando la plantilla Tuning .
  3. Inicie mi aplicación y haga algunas cosas que generen consultas SQL.
  4. Cierra mi aplicación
  5. Detener el rastro
  6. Guarde el seguimiento como un archivo de seguimiento .
  7. Asesor de ajuste de motor de base de datos abierto
  8. Elija Archivo como carga de trabajo y seleccione el archivo de rastreo que guardé anteriormente.
  9. Seleccione las bases de datos que usa mi aplicación en Seleccionar bases de datos y tablas para sintonizar .
  10. Haga clic en Comenzar análisis .

Hasta aquí, pensé que las cosas iban bien. Pero cuando termina después de un rato, obtengo esto:

Progreso http://i39.tinypic.com/1235avd.jpg

Y una página de Recomendaciones completamente vacía. El evento no hace referencia a ninguna tabla? ¿Qué significa eso (aparte de lo obvio, por supuesto, p)? ¿He entendido mal el proceso aquí? Que esta pasando?


Creo que la razón por la que no recibes recomendaciones es porque no tienes permisos ''SHOWPLAN'' en tu base de datos. Conceda al usuario que está ejecutando el analizador que acceda y vuelva a intentarlo.

Además, veo algunos errores de "nombre de objeto no válido" también: asegúrese de que el usuario que está ejecutando el analizador tenga los permisos adecuados para todas las tablas involucradas.


Hay otra cosa que puedes verificar si obtienes este error. Si eres tan molesto como yo, es posible que hayas olvidado seleccionar la base de datos adecuada en el menú desplegable "Base de datos para análisis de carga de trabajo" en la pestaña General.


Estaba ejecutando el analizador como yo mismo (dbo), pero mi propia ruta contenía consultas de un usuario del grupo de aplicaciones IIS que no tenía acceso SHOWPATH.

Así que otorgué acceso SHOWPATH a ese usuario del grupo de aplicaciones IIS y luego funcionó bien.

GRANT SHOWPLAN TO [COMPANYDOMIAN/IIS_APPUSER]