Procedimientos recomendados para el grupo de SQL dedicado (anteriormente SQL DW) en Azure Synapse AnalyticsBest practices for dedicated SQL pool (formerly SQL DW) in Azure Synapse Analytics

Este artículo es una recopilación de procedimientos recomendados que le ayudará a conseguir un rendimiento óptimo de la implementación del grupo de SQL dedicado (anteriormente SQL DW).This article is a collection of best practices to help you to achieve optimal performance from your dedicated SQL pool (formerly SQL DW) deployment. El propósito de este artículo es proporcionarle algunas instrucciones básicas y resaltar las áreas de atención importantes.The purpose of this article is to give you some basic guidance and highlight important areas of focus.

Menos costos gracias a las características de pausa y escaladoReduce cost with pause and scale

Para más información acerca de cómo reducir los costos mediante la pausa y el escalado, consulte Administración de procesos.For more information about reducing costs through pausing and scaling, see the Manage compute.

Mantenimiento de estadísticasMaintain statistics

El grupo de SQL dedicado (anteriormente SQL DW) se puede configurar para detectar y crear estadísticas automáticamente con información de las columnas.Dedicated SQL pool (formerly SQL DW) can be configured to automatically detect and create statistics on columns. Los planes de consulta que crea el optimizador son igual de buenos que las estadísticas disponibles.The query plans created by the optimizer are only as good as the available statistics.

Se recomienda habilitar AUTO_CREATE_STATISTICS para las bases de datos y mantener actualizadas las estadísticas a diario o después de cada carga. Así, se asegurará de que las estadísticas de las columnas utilizadas en las consultas siempre estén actualizadas.We recommend that you enable AUTO_CREATE_STATISTICS for your databases and keep the statistics updated daily or after each load to ensure that statistics on columns used in your queries are always up to date.

Si cree que tarda demasiado en realizar la actualización de todas las estadísticas, puede intentar ser más selectivo acerca de las columnas que necesitan actualizar sus estadísticas con frecuencia.If you find it is taking too long to update all of your statistics, you may want to try to be more selective about which columns need frequent statistics updates. Por ejemplo, puede actualizar las columnas de fecha, donde se añadan valores todos los días.For example, you might want to update date columns, where new values may be added, daily.

Sugerencia

Sacará el máximo provecho con las estadísticas actualizadas en columnas relacionadas con combinaciones, columnas que se usan en la cláusula WHERE y columnas de GROUP BY.You will gain the most benefit by having updated statistics on columns involved in joins, columns used in the WHERE clause and columns found in GROUP BY.

Consulte también Administración de estadísticas en tablas, CREATE STATISTICS y UPDATE STATISTICS.See also Manage table statistics, CREATE STATISTICS, and UPDATE STATISTICS.

Uso de vistas de administración dinámica (DMV) para supervisar y optimizar las consultasUse DMVs to monitor and optimize your queries

El grupo de SQL dedicado (anteriormente SQL DW) tiene varias DMV que sirven para supervisar la ejecución de consultas.Dedicated SQL pool (formerly SQL DW) has several DMVs that can be used to monitor query execution. En el artículo sobre Supervisión de la carga de trabajo mediante DMV se detallan las instrucciones paso a paso para ver los detalles de una consulta en ejecución.The Monitor your workload using DMVs article details step-by-step instructions on how to look at the details of an executing query.

Usar la opción LABEL con las consultas puede ayudar a encontrar rápidamente las consultas en estas DMV.To quickly find queries in these DMVs, using the LABEL option with your queries can help.

Consulte también Supervisión de la carga de trabajo mediante DMV, LABEL, OPTION, sys.dm_exec_sessions, sys.dm_pdw_exec_requests, sys.dm_pdw_request_steps, sys.dm_pdw_sql_requests, sys.dm_pdw_dms_workers, DBCC PDW_SHOWEXECUTIONPLAN y sys.dm_pdw_waits.See also Monitor your workload using DMVs, LABEL, OPTION, sys.dm_exec_sessions, sys.dm_pdw_exec_requests, sys.dm_pdw_request_steps, sys.dm_pdw_sql_requests, sys.dm_pdw_dms_workers, DBCC PDW_SHOWEXECUTIONPLAN, and sys.dm_pdw_waits.

Optimización del rendimiento de las consultas con nuevas mejoras en el productoTune query performance with new product enhancements

Agrupación de instrucciones INSERT en lotesGroup INSERT statements into batches

Una carga única en una tabla pequeña con una instrucción INSERT o incluso una recarga periódica de una búsqueda, puede ser adecuada para sus necesidades con una instrucción como INSERT INTO MyLookup VALUES (1, 'Type 1').A one-time load to a small table with an INSERT statement or even a periodic reload of a look-up may perform well for your needs with a statement like INSERT INTO MyLookup VALUES (1, 'Type 1').

Sin embargo, si necesita cargar miles o millones de filas a lo largo del día, es posible que las instrucciones INSERT sencillas no sean suficientes.However, if you need to load thousands or millions of rows throughout the day, you might find that singleton INSERTS just can't keep up. En su lugar, desarrolle sus procesos para que se escriban en un archivo y otro proceso que se ejecute periódicamente y lo cargue.Instead, develop your processes so that they write to a file and another process periodically comes along and loads this file.

Consulte también INSERT.See also INSERT.

Uso de PolyBase para cargar y exportar los datos rápidamenteUse PolyBase to load and export data quickly

El grupo de SQL dedicado (anteriormente SQL DW) admite la carga y exportación de datos con varias herramientas, como Azure Data Factory, PolyBase y BCP.Dedicated SQL pool (formerly SQL DW) supports loading and exporting data through several tools including Azure Data Factory, PolyBase, and BCP. Para pequeñas cantidades de datos donde el rendimiento no es clave, cualquier herramienta le sirve.For small amounts of data where performance isn't critical, any tool may be sufficient for your needs. Sin embargo, para cargar o exportar grandes volúmenes de datos o si se necesita un rendimiento rápido, PolyBase es la mejor opción.However, when you are loading or exporting large volumes of data or fast performance is needed, PolyBase is the best choice.

PolyBase está diseñado para aprovechar la naturaleza distribuida del sistema y cargará y exportará grandes cantidades de datos más rápido que cualquier otra herramienta.PolyBase is designed to leverage distributed nature of the system and will load and export data magnitudes faster than any other tool. Lo que haya cargado con PolyBase se ejecuta con la consulta CTAS o de selección.PolyBase loads can be run using CTAS or INSERT INTO.

Sugerencia

CTAS reduce el registro de transacciones y es la manera más rápida de cargar datos.Using CTAS will minimize transaction logging and the fastest way to load your data.

Azure Data Factory también admite cargas de PolyBase y puede lograr un rendimiento similar a CTAS.Azure Data Factory also supports PolyBase loads and can achieve similar performance as CTAS. PolyBase admite distintos de formatos de archivo, como Gzip.PolyBase supports a variety of file formats including Gzip files.

Nota

Con el fin de conseguir un mayor rendimiento al usar archivos de texto gzip, divídalos en 60 o más archivos para aumentar el paralelismo de la carga.To maximize throughput when using gzip text files, break up files into 60 or more files to maximize parallelism of your load. Para conseguir un rendimiento total más rápido, cargue los datos simultáneamente.For faster total throughput, consider loading data concurrently.

Consulte también Carga de datos, Guía para el uso de PolyBase, Patrones y estrategias de carga de grupo de SQL dedicado, Carga de datos con Azure Data Factory, Movimiento de datos mediante Azure Data Factory, CREATE EXTERNAL FILE FORMAT y CREATE TABLE AS SELECT (CTAS).See also Load data, Guide for using PolyBase, Dedicated SQL pool loading patterns and strategies, Load Data with Azure Data Factory, Move data with Azure Data Factory, CREATE EXTERNAL FILE FORMAT, and Create table as select (CTAS).

Carga y consulta de tablas externasLoad then query external tables

Aunque Polybase, también conocido ahora como tablas externas, puede ser la manera más rápida de cargar datos, no resulta óptimo para las consultas.While Polybase, also known as external tables, can be the fastest way to load data, it is not optimal for queries. Las tablas de Polybase solo admiten actualmente archivos de blobs de Azure y almacenamiento de Azure Data Lake Store.Polybase tables currently only support Azure blob files and Azure Data Lake storage. Estos archivos no tienen recursos de proceso que los respalde.These files do not have any compute resources backing them.

Como resultado, el grupo de SQL dedicado no puede descargar este trabajo y, por tanto, para leer los datos del archivo entero, tiene que cargarlo en tempdb.As a result, dedicated SQL pool cannot offload this work and therefore must read the entire file by loading it to tempdb in order to read the data. Por lo tanto, si tiene varias consultas que van a consultar estos datos, es mejor cargarlos una vez que las consultas usen la tabla local.Therefore, if you have several queries that will be querying this data, it is better to load this data once and have queries use the local table.

Consulte también Guía para el uso de PolyBase.See also Guide for using PolyBase.

Distribución Hash para tablas grandesHash distribute large tables

De forma predeterminada, las tablas se distribuyen según el patrón Round Robin.By default, tables are Round Robin distributed. Esto facilita a los usuarios empezar a crear tablas sin tener que decidir sobre la distribución.This makes it easy for users to get started creating tables without having to decide how their tables should be distributed. Las tablas round robin pueden ser suficientes para algunas cargas de trabajo, pero en la mayoría de los casos, la selección de una columna de distribución funcionará mucho opción.Round Robin tables may perform sufficiently for some workloads, but in most cases selecting a distribution column will perform much better.

El ejemplo más común de tabla distribuida por una columna que supera con creces a una Round Robin es al combinarse dos tablas grandes de hechos.The most common example of when a table distributed by a column will far outperform a Round Robin table is when two large fact tables are joined.

Por ejemplo, si tiene una tabla de pedidos, que se distribuye por order_id, y una tabla de transacciones, que también se distribuye por order_id, al unir la tabla de pedidos a la de transacciones en order_id, esta consulta se convierte en una consulta de paso a través, lo que significa que se eliminan las operaciones de movimiento de datos.For example, if you have an orders table, which is distributed by order_id, and a transactions table, which is also distributed by order_id, when you join your orders table to your transactions table on order_id, this query becomes a pass-through query, which means we eliminate data movement operations. Menos pasos suponen consultas más rápidas.Fewer steps mean a faster query. Menos movimiento de datos también se traduce en consultas más rápidas.Less data movement also makes for faster queries.

Sugerencia

Al cargar una tabla con distribución, asegúrese de que no se ordenan los datos entrantes en la clave de distribución, ya que esto ralentizará la carga.When loading a distributed table, be sure that your incoming data is not sorted on the distribution key as this will slow down your loads.

En los vínculos a continuación se muestra con más detalle cómo la selección de una columna de distribución puede mejorar el rendimiento y la manera de definir una tabla distribuida en la cláusula WITH de la instrucción CREATE TABLE.See the following links for more details on how selecting a distribution column can improve performance as well as how to define a distributed table in the WITH clause of your CREATE TABLE statement.

Consulte también Información general de tablas, Distribución de tablas, Selección de la distribución de tablas, CREATE TABLE, CREATE TABLE AS SELECT.See also Table overview, Table distribution, Selecting table distribution, CREATE TABLE, CREATE TABLE AS SELECT.

Sin particiones excesivasDo not over-partition

Crear particiones de datos puede resultar eficaz para el mantenimiento de los datos mediante la modificación de particiones o exámenes de optimización, pero el exceso de particiones puede ralentizar las consultas.While partitioning data can be effective for maintaining your data through partition switching or optimizing scans by with partition elimination, having too many partitions can slow down your queries. A menudo una estrategia de creación de particiones con granularidad alta que puede funcionar bien en SQL Server, no funciona correctamente en el grupo de SQL dedicado (anteriormente SQL DW).Often a high granularity partitioning strategy, which may work well on SQL Server may not work well in dedicated SQL pool (formerly SQL DW).

El exceso de particiones también puede reducir la eficacia de los índices de almacén de columnas agrupadas si cada partición tiene menos de 1 millón de filas.Having too many partitions can also reduce the effectiveness of clustered columnstore indexes if each partition has fewer than 1 million rows. Tenga en cuenta que, en segundo plano, el grupo de SQL dedicado particiona los datos automáticamente en 60 bases de datos, por lo que si crea una tabla con 100 particiones, se generan realmente 6000 particiones.Keep in mind that behind the scenes, dedicated SQL pool partitions your data for you into 60 databases, so if you create a table with 100 partitions, this actually results in 6000 partitions.

Cada carga de trabajo es diferente, por lo mejor es probar con las particiones para ver qué funciona mejor para la suya.Each workload is different so the best advice is to experiment with partitioning to see what works best for your workload. Considere la posibilidad de reducir la granularidad respecto a lo que le funcionaba en SQL Server.Consider lower granularity than what may have worked for you in SQL Server. Por ejemplo, puede usar particiones semanales o mensuales, en lugar de diarias.For example, consider using weekly or monthly partitions rather than daily partitions.

Consulte también Creación de particiones de tablas.See also Table partitioning.

Reducción del tamaño de las transaccionesMinimize transaction sizes

Las instrucciones INSERT, UPDATE Y DELETE se ejecutan en las transacciones y, cuando fallan, deben deshacerse.INSERT, UPDATE, and DELETE statements run in a transaction and when they fail they must be rolled back. Para que no se tarde tanto en deshacer, reduzca el tamaño de las transacciones siempre que pueda.To minimize the potential for a long rollback, minimize transaction sizes whenever possible. Puede hacerlo si divide las instrucciones INSERT, UPDATE y DELETE en partes.This can be done by dividing INSERT, UPDATE, and DELETE statements into parts.

Por ejemplo, si tiene una instrucción INSERT que se suele tardar 1 hora, si puede, divídala en cuatro partes de 15 minutos cada una.For example, if you have an INSERT that you expect to take 1 hour, if possible, break up the INSERT into four parts, which will each run in 15 minutes. Aproveche los casos de registro mínimo, como CTAS, TRUNCATE, DROP TABLE o INSERT para vaciar las tablas y así reducir el riesgo de reversión.Leverage special Minimal Logging cases, like CTAS, TRUNCATE, DROP TABLE, or INSERT to empty tables, to reduce rollback risk.

Otra manera de eliminar reversiones es usar funciones de solo metadatos, como la modificación de particiones para la administración de datos.Another way to eliminate rollbacks is to use Metadata Only operations like partition switching for data management. Por ejemplo, en lugar de ejecutar una instrucción DELETE para eliminar todas las filas de una tabla cuyo order_date fuera octubre de 2001, podría dividir los datos mensualmente y desactivar la división con los datos de una partición vacía de otra tabla (consulte los ejemplos de ALTER TABLE).For example, rather than execute a DELETE statement to delete all rows in a table where the order_date was in October of 2001, you could partition your data monthly and then switch out the partition with data for an empty partition from another table (see ALTER TABLE examples).

Para tablas sin particiones, puede usar CTAS en lugar de DELETE para escribir los datos que quiera mantener en una tabla.For unpartitioned tables, consider using a CTAS to write the data you want to keep in a table rather than using DELETE. Si CTAS tarda lo mismo, es una operación mucho más segura, ya que su registro de transacciones es mínimo y se puede cancelar rápidamente si es necesario.If a CTAS takes the same amount of time, it is a much safer operation to run as it has minimal transaction logging and can be canceled quickly if needed.

Consulte también Introducción a las transacciones, Optimización de transacciones, Creación de particiones de tablas, TRUNCATE TABLE, ALTER TABLE y CREATE TABLE AS SELECT (CTAS).See also Understanding transactions, Optimizing transactions, Table partitioning, TRUNCATE TABLE, ALTER TABLE, and Create table as select (CTAS).

Reducción del tamaño de los resultados de consultasReduce query result sizes

Este paso le ayuda a evitar problemas en el lado del cliente a causa de unos resultados de consulta grandes.This step helps you avoid client-side issues caused by large query result. Puede editar la consulta para reducir el número de filas devueltas.You can edit your query to reduce the number of rows returned. Algunas herramientas de generación de consultas le permiten agregar sintaxis de "N principal" a cada consulta.Some query generation tools allow you to add "top N" syntax to each query. También puede aplicar una instrucción CETAS al resultado de la consulta en una tabla temporal y, a continuación, usar la exportación de PolyBase para el procesamiento de nivel inferior.You can also CETAS the query result to a temporary table and then use PolyBase export for the downlevel processing.

Uso del tamaño de columna mínimoUse the smallest possible column size

Al definir el DDL, usar el tipo de datos mínimo compatible con los datos mejorará el rendimiento de la consulta.When defining your DDL, using the smallest data type that will support your data will improve query performance. Este enfoque tiene especial importancia para las columnas CHAR y VARCHAR.This approach is particularly important for CHAR and VARCHAR columns.

Si el valor mayor máximo de una columna es 25 caracteres, defina la columna como VARCHAR(25).If the longest value in a column is 25 characters, then define your column as VARCHAR(25). Evite definir todas las columnas de caracteres con una longitud predeterminada de gran tamaño.Avoid defining all character columns to a large default length. Defina las columnas como VARCHAR en lugar de NVARCHAR cuando no se necesite nada más.In addition, define columns as VARCHAR when that is all that is needed rather than use NVARCHAR.

Consulte también Información general de tablas, Tipos de datos de las tablas, CREATE TABLE.See also Table overview, Table data types, CREATE TABLE.

Uso de tablas de apilamiento temporal para datos transitoriosUse temporary heap tables for transient data

Cuando almacene datos temporalmente, las tablas de apilamiento pueden agilizar el proceso global.When you are temporarily landing data, you may find that using a heap table will make the overall process faster. Si está cargando datos solo para colocarlos en etapa antes de ejecutar más transformaciones, será mucho más rápido cargar la tabla en una tabla del montón que cargar los datos en una tabla agrupada de almacén de columnas.If you are loading data only to stage it before running more transformations, loading the table to heap table will be much faster than loading the data to a clustered columnstore table.

Además, los datos de una tabla temporal también se cargarán mucho más rápido que las tablas de almacenamiento permanente.In addition, loading data to a temp table will also load much faster than loading a table to permanent storage. Las tablas temporales empiezan por "#" y solo se puede acceder a ellas desde la sesión en la que se crean, por lo que pueden no funcionar en algunas situaciones.Temporary tables start with a "#" and are only accessible by the session that created it, so they may only work in limited scenarios.

Las tablas de apilamiento se definen en la cláusula WITH de CREATE TABLE.Heap tables are defined in the WITH clause of a CREATE TABLE. Si usa una tabla temporal, no olvide crear estadísticas en ella también.If you do use a temporary table, remember to create statistics on that temporary table too.

Consulte también Tablas temporales, CREATE TABLE, CREATE TABLE AS SELECT.See also Temporary tables, CREATE TABLE, CREATE TABLE AS SELECT.

Optimización de tablas de almacén de columnas agrupadasOptimize clustered columnstore tables

Los índices de almacén de columnas en clúster son una de las maneras más eficaces de almacenar los datos en el grupo de SQL dedicado.Clustered columnstore indexes are one of the most efficient ways you can store your data in dedicated SQL pool. De forma predeterminada, las tablas del grupo de SQL dedicado se crean como almacén de columnas en clúster.By default, tables in dedicated SQL pool are created as Clustered ColumnStore. Para conseguir el máximo rendimiento de las consultas en las tablas de almacén de columnas, es importante la calidad de los segmentos.To get the best performance for queries on columnstore tables, having good segment quality is important.

Escriben filas en las tablas de almacén de columnas bajo presión de memoria afecta a la calidad de segmento.When rows are written to columnstore tables under memory pressure, columnstore segment quality may suffer. La calidad de segmento se puede medir por el número de filas de un grupo de filas comprimido.Segment quality can be measured by number of rows in a compressed Row Group. Para obtener instrucciones detalladas acerca de la detección y mejora de la calidad de los segmentos en las tablas de almacén de columnas agrupadas, consulte la sección Causas de una calidad deficiente del índice de almacén de columnas del artículo sobre Indexación de tablas.See the Causes of poor columnstore index quality in the Table indexes article for step-by-step instructions on detecting and improving segment quality for clustered columnstore tables.

Como es importante que los segmentos de almacén de columnas sean de una buena calidad, es conveniente usar identificadores de usuario que se encuentren en la clase de recursos grande o mediana para cargar los datos.Because high-quality columnstore segments are important, it's a good idea to use users IDs that are in the medium or large resource class for loading data. El uso de unidades de almacenamiento de datos inferiores significa que desea asignar una clase de recurso mayor para el usuario que realiza la carga.Using lower data warehouse units means you want to assign a larger resource class to your loading user.

Dado que las tablas de almacén de columnas generalmente no insertan datos en un segmento del almacén de columnas comprimido hasta que hay más de 1 millón de filas por tabla y cada tabla del grupo de SQL dedicado se divide en 60 partes, como norma general, las tablas de almacén de columnas no serán útiles para las consultas a menos que la tabla tenga más de 60 millones de filas.Since columnstore tables generally won't push data into a compressed columnstore segment until there are more than 1 million rows per table and each dedicated SQL pool table is partitioned into 60 tables, as a rule of thumb, columnstore tables won't benefit a query unless the table has more than 60 million rows. Para las tablas con menos de 60 millones de filas, podría no tener sentido el índice de almacén de columnas.For table with less than 60 million rows, it may not make any sense to have a columnstore index. Pero tampoco molesta.It also may not hurt.

Además, si divide los datos, recuerde que cada parte deberá tener 1 millón de filas para beneficiarse de un índice de almacén de columnas agrupadas.Furthermore, if you partition your data, then you will want to consider that each partition will need to have 1 million rows to benefit from a clustered columnstore index. Si una tabla tiene 100 particiones, tendrá que tener al menos 6 mil millones de filas para beneficiarse de un almacén de columnas agrupadas (60 distribuciones 100 particiones 1 millón de filas).If a table has 100 partitions, then it will need to have at least 6 billion rows to benefit from a clustered columns store (60 distributions 100 partitions 1 million rows).

Si la tabla no tiene 6 mil millones de filas en este ejemplo, reduzca el número de particiones o considere la posibilidad de usar una tabla de apilamiento en su lugar.If your table does not have 6 billion rows in this example, either reduce the number of partitions or consider using a heap table instead. También puede experimentar para ver si consigue un mejor rendimiento con una tabla de apilamiento con índices secundarios, en lugar de con una tabla de almacén de columnas.It also may be worth experimenting to see if better performance can be gained with a heap table with secondary indexes rather than a columnstore table.

Sugerencia

Al consultar una tabla de almacén de columnas, las consultas se ejecutarán más rápido si selecciona solo las que necesita.When querying a columnstore table, queries will run faster if you select only the columns you need.

Consulte también Índices de tablas, Guía de índices de almacén de columnas y Regeneración de índices de almacén de columnas.See also Table indexes, Columnstore indexes guide, Rebuilding columnstore indexes

Uso de clases de recursos más grandes para mejorar el rendimiento de las consultasUse larger resource class to improve query performance

El grupo de SQL dedicado usa grupos de recursos para asignar memoria a las consultas.Dedicated SQL pool uses resource groups as a way to allocate memory to queries. De manera predeterminada, todos los usuarios se asignan a los recursos de la clase pequeña, que concede 100 MB de memoria por distribución.Out of the box, all users are assigned to the small resource class, which grants 100 MB of memory per distribution. Dado que siempre hay 60 distribuciones y cada distribución tiene un mínimo de 100 MB, la asignación de memoria total del sistema es de 6 000 MB o justo por debajo de 6 GB.Since there are always 60 distributions and each distribution is given a minimum of 100 MB, system wide the total memory allocation is 6,000 MB, or just under 6 GB.

Algunas consultas, como las combinaciones de gran tamaño o las cargas a las tablas de almacén de columnas agrupadas, se beneficiarán de las mayores asignaciones de memoria.Certain queries, like large joins or loads to clustered columnstore tables, will benefit from larger memory allocations. Algunas consultas, como los exámenes puros, no ofrecerá ventajas.Some queries, like pure scans, will yield no benefit. De todas formas, usar clases de recursos mayores reduce la simultaneidad, por lo que deberá tener en cuenta este impacto antes de cambiar todos los usuarios a una clase de recursos grande.However, utilizing larger resource classes reduces concurrency, so you will want to take this impact into consideration before moving all of your users to a large resource class.

Consulte también Clases de recursos para la administración de cargas de trabajo.See also Resource classes for workload management.

Menor clase de recursos para aumentar la simultaneidadUse Smaller Resource Class to Increase Concurrency

Si observa que las consultas de usuario se retrasan bastante, es posible que los usuarios estén realizando ejecuciones en clases de recursos mayores y consuman varios espacios de simultaneidad, lo que pone en cola otras consultas.If you notice that user queries seem to have a long delay, it could be that your users are running in larger resource classes and are consuming many concurrency slots causing other queries to queue up. Para ver si hay consultas de usuarios en cola, ejecute SELECT * FROM sys.dm_pdw_waits para ver si se devuelven filas.To see if users queries are queued, run SELECT * FROM sys.dm_pdw_waits to see if any rows are returned.

Consulte también Clases de recursos para la administración de cargas de trabajo, sys.dm_pdw_waits.See also Resource classes for workload management, sys.dm_pdw_waits.

Otros recursosOther resources

Consulte también el artículo Solución de problemas para más información sobre problemas comunes y soluciones.Also see our Troubleshooting article for common issues and solutions.

Si no encontró lo que busca en este artículo, pruebe a usar la "búsqueda de documentos" en la parte izquierda de esta página para buscar todos los documentos de Azure Synapse.If you didn't find what you are looking for in this article, try using the "Search for docs" on the left side of this page to search all of the Azure Synapse documents. En la página de preguntas y respuestas de Microsoft para Azure Synapse puede publicar preguntas para otros usuarios y para el grupo del producto de Azure Synapse.The Microsoft Q&A question page for Azure Synapse is a place for you to post questions to other users and to the Azure Synapse Product Group. Supervisamos continuamente este foro para garantizar que sus preguntas las responde otro usuario o alguno de nosotros.We actively monitor this forum to ensure that your questions are answered either by another user or one of us.

Si prefiere formular sus preguntas en Stack Overflow, también tenemos un foro de Stack Overflow acerca de Azure Synapse.If you prefer to ask your questions on Stack Overflow, we also have an Azure Synapse Stack Overflow Forum.

Use la página de comentarios de Azure Synapse para realizar solicitudes de características.Please use the Azure Synapse Feedback page to make feature requests. Añadir sus solicitudes o valoraciones positivas sobre otras solicitudes realmente nos ayuda a priorizar las características.Adding your requests or up-voting other requests really helps us prioritize features.