Determinar si una tabla o un procedimiento almacenado se debe pasar a OLTP en memoriaDetermining if a Table or Stored Procedure Should Be Ported to In-Memory OLTP

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

El informe de análisis del rendimiento de las transacciones de SQL Server Management StudioSQL Server Management Studio permite evaluar si OLTP en memoria mejorará el rendimiento de la aplicación de base de datos.The Transaction Performance Analysis report in SQL Server Management StudioSQL Server Management Studio helps you evaluate if In-Memory OLTP will improve your database application's performance. En el informe también se indicará cuánto trabajo debe hacer para habilitar OLTP en memoria en la aplicación.The report also indicates how much work you must do to enable In-Memory OLTP in your application. Después de identificar una tabla basada en disco para convertirla a OLTP en memoria, puede usar el Asistente de optimización de memoriapara que le ayude a migrar la tabla.After you identify a disk-based table to port to In-Memory OLTP, you can use the Memory Optimization Advisor, to help you migrate the table. De manera similar, el Native Compilation Advisor le permitirá convertir un procedimiento almacenado en un procedimiento almacenado compilado de forma nativa.Similarly, the Native Compilation Advisor will help you port a stored procedure to a natively compiled stored procedure. Para obtener más información sobre las metodologías de migración, vea OLTP en memoria: patrones de carga de trabajo comunes y consideraciones sobre la migración.For information about migration methodologies, see In-Memory OLTP - Common Workload Patterns and Migration Considerations.

El informe de análisis del rendimiento de las transacciones se ejecuta directamente en la base de datos de producción, o bien en una base de datos de prueba con una carga de trabajo activa similar a la carga de trabajo de producción.The Transaction Performance Analysis report is run directly against the production database, or a test database with an active workload that is similar to the production workload.

Los asesores de informes y migración lo ayudarán a realizar las tareas siguientes:The report and migration advisors help you accomplish the following tasks:

  • Analizar la carga de trabajo para determinar las zonas activas donde OLTP en memoria podría contribuir a mejorar el rendimiento.Analyze your workload to determine hot spots where In-Memory OLTP can potentially help to improve performance. El informe de análisis de rendimiento de las transacciones recomienda las tablas y los procedimientos almacenados que se beneficiarían de la conversión a OLTP en memoria.The Transaction Performance Analysis report recommends tables and stored procedures that would benefit most from conversion to In-Memory OLTP.

  • Le ayuda a planear y ejecutar la migración a OLTP en memoria.Help you plan and execute your migration to In-Memory OLTP. La migración de una tabla basada en disco a una tabla optimizada para memoria puede llevar mucho tiempo.The migration path from a disk based table to a memory-optimized table can be time consuming. El Asesor de optimización para memoria permite identificar las incompatibilidades que debe quitar de la tabla antes de migrar la tabla a OLTP en memoria.The Memory-Optimization Advisor helps you identify the incompatibilities in your table that you must remove before moving the table to In-Memory OLTP. El Asesor de optimización para memoria permite también comprender el impacto que la migración de una tabla a una tabla optimizada para memoria tendrá sobre su aplicación.The Memory-Optimization Advisor also helps you understand the impact that the migration of a table to a memory-optimized table will have on your application.

    Puede ver si la aplicación se beneficiaría de OLTP en memoria, si desea planear la migración a OLTP en memoria y siempre que migre algunas de sus tablas y procedimientos almacenados a OLTP en memoria.You can see if your application would benefit from In-Memory OLTP, when you want to plan your migration to In-Memory OLTP, and whenever you work to migrate some of your tables and stored procedures to In-Memory OLTP.

    Importante

    El rendimiento de un sistema de base de datos depende de diversos de factores, no todos los cuales puede observar y medir el recopilador de rendimiento de las transacciones.The performance of a database system is dependent on a variety of factors, not all of which the transaction performance collector can observe and measure. Por consiguiente, el informe de análisis del rendimiento de las transacciones no garantiza que las mejoras reales en el rendimiento coincidirán con las predicciones, en el caso de que las haya.Therefore, the transaction performance analysis report does not guarantee actual performance gains will match its predictions, if any predictions are made.

El informe de análisis de rendimiento de transacción y los asesores de migración se instalan como parte de SQL Server Management Studio (SSMS) cuando se selecciona Herramientas de administración - Básica o Herramientas de administración - Avanzada al instalar SQL Server 2017SQL Server 2017, o bien al descargar SQL Server Management Studio.The Transaction Performance Analysis report and the migration advisors are installed as part of SQL Server Management Studio (SSMS) when you select Management Tools-Basic or Management Tools-Advanced when you install SQL Server 2017SQL Server 2017, or when you Download SQL Server Management Studio.

Informes de análisis del rendimiento de las transaccionesTransaction Performance Analysis Reports

Puede generar informes de análisis del rendimiento de las transacciones en Explorador de objetos haciendo clic con el botón derecho en la base de datos, seleccionando Informesy, después, Informes estándare Información general de análisis del rendimiento de las transacciones.You can generate transaction performance analysis reports in Object Explorer by right-clicking on the database, selecting Reports, then Standard Reports, and then Transaction Performance Analysis Overview. La base de datos debe tener una carga de trabajo activa o haber ejecutado una recientemente para generar un informe de análisis significativo.The database needs to have an active workload, or a recent run of a workload, in order to generate a meaningful analysis report.

TablasTables

El informe de detalles de una tabla consta de tres secciones:The details report for a table consists of three sections:

  • Sección de estadísticas de recorridoScan Statistics Section

    Esta sección incluye una única tabla que muestra las estadísticas recopiladas acerca de los recorridos en la tabla de base de datos.This section includes a single table that shows the statistics that were collected about scans on the database table. Las columnas son:The columns are:

    • Porcentaje de accesos en total.Percent of total accesses. El porcentaje de recorridos y de búsquedas en esta tabla con respecto a la actividad de toda la base de datos.The percentage of scans and seeks on this table with respect to the activity of the entire database. Cuanto mayor sea el porcentaje, más se usa la tabla en comparación con otras de la base de datos.The higher this percentage, the more heavily used the table is compared to other tables in the database.

    • Estadísticas de búsqueda y de recorrido de intervalos.Lookup Statistics/Range Scan Statistics. Esta columna registra el número de búsquedas de puntos y de recorridos de intervalo (recorridos de índice y recorridos de tabla) realizados en la tabla durante la generación de perfiles.This column records the number of point lookups and range scans (index scans and table scans) conducted on the table during profiling. El promedio por transacción es una estimación.Average per transaction is an estimate.

  • Sección de estadísticas de contenciónContention Statistics Section

    Esta sección incluye una tabla que muestra la contención en la tabla de base de datos.This section includes a table that shows contention on the database table. Para obtener más información sobre los bloqueos y los bloqueos temporales de la base de datos, consulte Locking Architecture (Arquitectura de bloqueo).For more information regarding database latches and locks, please see Locking Architecture. Estas son sus columnas:The columns are as follows:

    • Porcentaje de esperas en total.Percent of total waits. El porcentaje de esperas por bloqueos y bloqueos temporales en esta tabla de base de datos en comparación con la actividad de la base de datos.The percentage of latch and lock waits on this database table compared to activity of the database. Cuanto mayor sea el porcentaje, más se usa la tabla en comparación con otras de la base de datos.The higher this percentage, the more heavily used the table is compared to other tables in the database.

    • Estadísticas de bloqueos temporales.Latch Statistics. Estas columnas registran el número de esperas por bloqueos temporales para las consultas que implican a esta tabla.These columns record the number of latch waits for queries involving for this table. Para obtener información sobre los bloqueos temporales, consulte Latching (Bloqueos temporales).For information on latches, see Latching. Cuanto mayor sea este número, más contención por bloqueos temporales hay en la tabla.The higher this number, the more latch contention on the table.

    • Estadísticas de bloqueos.Lock Statistics. Este grupo de columnas registra el número de esperas y de adquisiciones de bloqueos de página para las consultas de esta tabla.This group of columns record the number of page lock acquisitions and waits for queries for this table. Para obtener más información sobre los bloqueos, consulte Understanding Locking in SQL Server (Descripción de los bloqueos en SQL Server).For more information on locks, see Understanding Locking in SQL Server. Cuantas más esperas hay, más contención por bloqueos se producen en la tabla.The more waits, the more lock contention on the table.

  • Sección de dificultades de migraciónMigration Difficulties Section

    Esta sección incluye una tabla que muestra las dificultades de convertir esta tabla de base de datos en una tabla optimizada para memoria.This section includes a table that shows the difficulty of converting this database table to a memory-optimized table. Una clasificación de mayor dificultad indica que convertir la tabla es más difícil.A higher difficulty rating indicates more difficultly to convert the table. Para ver información sobre cómo convertir esta tabla de base de datos, utilice el Asesor de optimización de memoria.To see details to convert this database table, please use the Memory Optimization Advisor.

Las estadísticas de contención del informe de detalles de la tabla se recopilan y agregan desde sys.dm_db_index_operational_stats (Transact-SQL).Scan and contention statistics on the table details report is gathered and aggregated from sys.dm_db_index_operational_stats (Transact-SQL).

Procedimientos almacenadosStored Procedures

Un procedimiento almacenado con un proporción alta de tiempo de CPU/tiempo transcurrido es un candidato a la migración.A stored procedure with high ratio of CPU time to elapsed time is a candidate for migration. El informe muestra todas las referencias de tabla, ya que los procedimientos almacenados compilados de forma nativa solo pueden hacer referencia a tablas optimizadas para memoria, que pueden incrementar el costo de la migración.The report shows all table references, because natively compiled stored procedures can only reference memory-optimized tables, which can add to the migration cost.

El informe de detalles de un procedimiento almacenado consta de dos secciones:The details report for a stored procedure consists of two sections:

  • Sección de estadísticas de ejecuciónExecution Statistics Section

    Esta sección incluye una tabla en la que se muestran las estadísticas recopiladas sobre las ejecuciones del procedimiento almacenado.This section includes a table that shows the statistics that were collected about the stored procedure's executions. Estas son sus columnas:The columns are as follows:

    • Tiempo en caché.Cached Time. El tiempo que se almacena en caché este plan de ejecución.The time this execution plan is cached. Si el procedimiento almacenado se sale de la memoria caché de planes y vuelve a entrar, habrá datos para cada caché.If the stored procedure drops out of the plan cache and re-enters, there will be times for each cache.

    • Tiempo total de CPU.Total CPU Time. El tiempo total de CPU que el procedimiento almacenado usó durante la generación de perfiles.The total CPU time that the stored procedure consumed during profiling. Cuanto mayor es este número, más CPU usó el procedimiento almacenado.The higher this number, the more CPU the stored procedure used.

    • Tiempo total de ejecución.Total Execution Time. El tiempo total de ejecución que el procedimiento almacenado usó durante la generación de perfiles.The total amount of execution time the stored procedure used during profiling. Cuanto más alta es la diferencia entre este número y el tiempo de CPU, menos eficiente es el procedimiento almacenado en el uso de la CPU.The higher the difference between this number and the CPU time is, the less efficiently the stored procedure is using the CPU.

    • Total de errores de caché.Total Cache Missed. El número de errores de caché (lecturas del almacenamiento físico) que se debe a las ejecuciones del procedimiento almacenado durante la generación de perfiles.The number of cache misses (reads from physical storage) that is caused by the stored procedure's executions during profiling.

    • Recuento de ejecución.Execution Count. El número de veces que este procedimiento almacenado se ha ejecutado durante la generación de perfiles.The number of times this stored procedure executed during profiling.

  • Sección de referencias de tablaTable References Section

    Esta sección incluye una tabla que muestra las tablas a las que este procedimiento almacenado hace referencia.This section includes a table that shows the tables to which this stored procedure refers. Antes de convertir el procedimiento almacenado en un procedimiento almacenado compilado de forma nativa, todas estas tablas deben convertirse en tablas optimizadas para memoria y deben permanecer en el mismo servidor y base de datos.Before converting the stored procedure into a natively compiled stored procedure, all of these tables must be converted to memory-optimized tables, and they must stay on the same server and database.

Las estadísticas de ejecución del informe de detalles del procedimiento almacenado se recopilan y agregan desde sys.dm_exec_procedure_stats (Transact-SQL).Execution Statistics on the stored procedure details report is gathered and aggregated from sys.dm_exec_procedure_stats (Transact-SQL). Las referencias se obtienen de sys.sql_expression_dependencies (Transact-SQL).The references are obtained from sys.sql_expression_dependencies (Transact-SQL).

Para ver información sobre cómo convertir un procedimiento almacenado en un procedimiento almacenado compilado de forma nativa, utilice el Asistente para compilación nativa.To see details about how to convert a stored procedure to a natively compiled stored procedure, please use the Native Compilation Advisor.

Generación de listas de comprobación de migración de OLTP en memoriaGenerating In-Memory OLTP Migration Checklists

Las listas de comprobación de migración identifican las características de procedimiento almacenado que no son compatibles con las tablas optimizadas en memoria o los procedimientos almacenados compilados de forma nativa o tabla.Migration checklists identify any table or stored procedure features that are not supported with memory-optimized tables or natively compiled stored procedures. El Asesor de optimización de memoria y el Asistente para compilación nativa pueden generar una lista de comprobación de una sola tabla basada en disco o un procedimiento almacenado de T-SQL interpretado.The memory-optimization and native compilation advisors can generate a checklist for a single disk-based table or interpreted T-SQL stored procedure. También se pueden generar listas de comprobación de varias tablas de migración y procedimientos almacenados de una base de datos.It is also possible to generation migration checklists for multiple tables and stored procedures in a database.

Puede generar una lista de comprobación de migración en SQL Server Management StudioSQL Server Management Studio usando el comando Generar listas de comprobación de migración de OLTP en memoria o a través de PowerShell.You can generate a migration checklist in SQL Server Management StudioSQL Server Management Studio by using the Generate In-Memory OLTP Migration Checklists command or by using PowerShell.

Pasos para generar una lista de comprobación de migración mediante el comando de la interfaz de usuarioTo generate a migration checklist using the UI command

  1. En Explorador de objetos, haga clic con el botón derecho en una base de datos que no sea la del sistema, en Tareasy, después, en Generar listas de comprobación de migración de OLTP en memoria.In Object Explorer, right click a database other than the system database, click Tasks, and then click Generate In-Memory OLTP Migration Checklists.

  2. En el cuadro de diálogo Generar listas de comprobación de migración de OLTP en memoria, haga clic en Siguiente para ir a la página Configurar opciones de generación de lista de comprobación .In the Generate In-Memory OLTP Migration Checklists dialog box, click Next to navigate to the Configure Checklist Generation Options page. En esta página, realice lo siguiente:On this page do the following.

    1. Escriba una ruta de carpeta en el cuadro Save checklist to (Guardar lista de comprobación en).Enter a folder path in the Save checklist to box.

    2. Compruebe que la opción Generar listas de comprobación para tablas y procedimientos almacenados específicos está seleccionada.Verify that Generate checklists for specific tables and stored procedures is selected.

    3. Expanda los nodos Tabla y Procedimiento almacenado del cuadro de sección.Expand the Table and Stored Procedure nodes in the section box.

    4. Seleccione unos pocos objetos en el cuadro de selección.Select a few objects in the selection box.

  3. Haga clic en Siguiente y confirme que la lista de tareas coincide con la configuración de la página Configure Checklist Generation Options (Configurar opciones de generación de lista de comprobación).Click Next and confirm that the list of tasks matches your settings on the Configure Checklist Generation Options page.

  4. Haga clic en Finalizary, después, confirme que se han generado los informes de lista de comprobación de migración solo para los objetos seleccionados.Click Finish, and then confirm that migration checklist reports were generated only for the objects you selected.

Puede comprobar la precisión de los informes comparándolos con los generados mediante la herramienta Asesor de optimización de memoria y el Asistente para compilación nativa.You can verify the accuracy of the reports by comparing them to reports generated by the Memory Optimization Advisor tool and the Native Compilation Advisor tool. Para obtener más información, consulte Memory Optimization Advisor y Native Compilation Advisor.For more information, see Memory Optimization Advisor and Native Compilation Advisor.

Pasos para generar una lista de comprobación de migración mediante SQL Server PowerShellTo generate a migration checklist using SQL Server PowerShell

  1. En Explorador de objetos, haga clic en una base de datos y, luego, en Iniciar PowerShell.In Object Explorer, click on a database and then click Start PowerShell. Compruebe que aparece el siguiente aviso.Verify that the following prompt appears.

    PS SQLSERVER: \SQL\{Instance Name}\DEFAULT\Databases\{two-part DB Name}>  
    
  2. Escriba el comando siguiente.Enter the following command.

    Save-SqlMigrationReport -FolderPath "<folder_path>"  
    
  3. Compruebe lo siguiente:Verify the following.

    • Se ha creado la ruta de acceso de la carpeta, si todavía no existe.The folder path is created, if it doesn't already exist.

    • El informe de lista de comprobación de migración se ha generado para todas las tablas y los procedimientos almacenados de la base de datos y el informe se encuentra en la ubicación especificada mediante ruta_carpeta.The migration checklist report is generated for all tables and stored procedures in the database, and the report is in the location specified by folder_path.

Pasos para generar una lista de comprobación de migración con Windows PowerShellTo generate a migration checklist using Windows PowerShell

  1. Inicie una sesión de Windows PowerShell con privilegios elevados.Start an elevated Windows PowerShell session.

  2. Escriba los comandos siguientes.Enter the following commands. El objeto puede ser una tabla o un procedimiento almacenado.The object can either be a table or a stored procedure.

    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO')  
    
    
    Save-SqlMigrationReport -Server "<instance_name>" -Database "<db_name>" -FolderPath "<folder_path1>"  
    
    
    Save-SqlMigrationReport -Server "<instance_name>" -Database "<db_name>" -Object <object_name> -FolderPath "<folder_path2>"  
    
    
  3. Compruebe lo siguiente:Verify the following.

    • Se ha generado un informe de lista de comprobación de migración para todas las tablas y los procedimientos almacenados de la base de datos y el informe se encuentra en la ubicación especificada mediante folder_path.A migration checklist report is generated for all tables and stored procedures in the database, and the report is in the location specified by folder_path.

    • Un informe de lista de comprobación de migración para <nombre_objeto> es el único informe que hay en la ubicación especificada por folder_path2.A migration checklist report for <object_name> is the only report in the location specified by folder_path2.

Consulte tambiénSee Also

Migrar a OLTP en memoriaMigrating to In-Memory OLTP