Optimización del rendimiento mediante las tecnologías en memoria en Azure SQL Database y Azure SQL Managed InstanceOptimize performance by using in-memory technologies in Azure SQL Database and Azure SQL Managed Instance

SE APLICA A: Azure SQL Database Azure SQL Managed Instance

Las tecnologías en memoria permiten mejorar el rendimiento de las aplicaciones y pueden reducir el costo de las bases de datos.In-memory technologies enable you to improve performance of your application, and potentially reduce cost of your database.

Cuándo usar tecnologías en memoriaWhen to use in-memory technologies

Mediante el uso de las tecnologías en memoria, puede lograr mejoras de rendimiento con diversas cargas de trabajo:By using in-memory technologies, you can achieve performance improvements with various workloads:

  • Transaccionales (procesamiento transaccional en línea (OLTP)) en las que la mayoría de las solicitudes leen o actualizan conjuntos de datos más pequeños (por ejemplo, operaciones CRUD).Transactional (online transactional processing (OLTP)) where most of the requests read or update smaller set of data (for example, CRUD operations).
  • Analíticas (procesamiento analítico en línea (OLAP)) en las que la mayoría de las consultas tienen cálculos complejos para los informes e incluyen un determinado número de consultas que cargan y anexan datos a las tablas existentes (denominadas "cargas masivas") o los eliminan de las mismas.Analytic (online analytical processing (OLAP)) where most of the queries have complex calculations for the reporting purposes, with a certain number of queries that load and append data to the existing tables (so called bulk-load), or delete the data from the tables.
  • Mixtas (procesamiento analítico-transaccional híbrido (HTAP)) en las que las consultas OLTP y OLAP se ejecutan en el mismo conjunto de datos.Mixed (hybrid transaction/analytical processing (HTAP)) where both OLTP and OLAP queries are executed on the same set of data.

Las tecnologías en memoria pueden mejorar el rendimiento de dichas cargas de trabajo al conservar en la memoria los datos que se deben procesar mediante la compilación nativa de las consultas o el procesamiento avanzado (como el procesamiento por lotes y las instrucciones SIMD) disponibles en el hardware subyacente.In-memory technologies can improve performance of these workloads by keeping the data that should be processed into the memory, using native compilation of the queries, or advanced processing such as batch processing and SIMD instructions that are available on the underlying hardware.

Información generalOverview

Azure SQL Database y Azure SQL Managed Instance tienen las siguientes tecnologías en memoria:Azure SQL Database and Azure SQL Managed Instance have the following in-memory technologies:

  • OLTP en memoria aumenta el número de transacciones por segundo y reduce la latencia de su procesamiento.In-Memory OLTP increases number of transactions per second and reduces latency for transaction processing. Estas son las situaciones en las que se obtienen ventajas con OLTP en memoria: procesamiento de transacciones de alto rendimiento, como operaciones comerciales y juegos, ingesta de datos de eventos o dispositivos de IoT, almacenamiento en caché, carga de datos y escenarios de tablas temporales y variables de tablas.Scenarios that benefit from In-Memory OLTP are: high-throughput transaction processing such as trading and gaming, data ingestion from events or IoT devices, caching, data load, and temporary table and table variable scenarios.
  • Los índices de almacén de columnas en clúster reducen el espacio de almacenamiento necesario (hasta 10 veces) y mejoran el rendimiento de las consultas de análisis e informes.Clustered columnstore indexes reduce your storage footprint (up to 10 times) and improve performance for reporting and analytics queries. Puede usarlos con las tablas de hechos de sus data marts para incluir más datos en la base de datos y mejorar el rendimiento.You can use it with fact tables in your data marts to fit more data in your database and improve performance. También puede usarlos con los datos históricos de la base de datos operativa para archivar hasta 10 veces más datos, así como para disfrutar de un incremento equivalente en el número de consultas realizadas sobre ellos.Also, you can use it with historical data in your operational database to archive and be able to query up to 10 times more data.
  • Con los índices de almacén de columnas no clúster para HTAP, podrá obtener información en tiempo real sobre su negocio realizando consultas directamente a la base de datos operativa, sin necesidad de ejecutar un caro proceso de extracción, transformación y carga (ETL) ni esperar a que se rellene el almacén de datos.Nonclustered columnstore indexes for HTAP help you to gain real-time insights into your business through querying the operational database directly, without the need to run an expensive extract, transform, and load (ETL) process and wait for the data warehouse to be populated. Los índices de almacén de columnas no en clúster permiten una ejecución rápida de las consultas de análisis en la base de datos OLTP y, a la vez, reducen el impacto en la carga de trabajo operativa.Nonclustered columnstore indexes allow fast execution of analytics queries on the OLTP database, while reducing the impact on the operational workload.
  • Los índices de almacén de columnas en clúster optimizados para memoria para HTAP le permiten realizar el procesamiento de transacciones de manera rápida y ejecutar consultas de análisis simultáneamente de manera muy rápida en los mismos datos.Memory-optimized clustered columnstore indexes for HTAP enables you to perform fast transaction processing, and to concurrently run analytics queries very quickly on the same data.

Las opciones de índices de almacén de columnas y OLTP en memoria forman parte de SQL Server desde 2012 y 2014, respectivamente.Both columnstore indexes and In-Memory OLTP have been part of the SQL Server product since 2012 and 2014, respectively. Azure SQL Database, Azure SQL Managed Instance y SQL Server comparten la misma implementación de tecnologías en memoria.Azure SQL Database, Azure SQL Managed Instance, and SQL Server share the same implementation of in-memory technologies.

Ventajas de la tecnología en memoriaBenefits of in-memory technology

Gracias al procesamiento más eficiente de las consultas y las transacciones, las tecnologías en memoria también lo ayudan a reducir costos.Because of the more efficient query and transaction processing, in-memory technologies also help you to reduce cost. Normalmente no necesita actualizar el plan de tarifa de la base de datos para lograr mejoras de rendimiento.You typically don't need to upgrade the pricing tier of the database to achieve performance gains. En algunos casos, tal vez pueda reducir incluso el plan de tarifa sin dejar de observar mejoras de rendimiento con las tecnologías en memoria.In some cases, you might even be able reduce the pricing tier, while still seeing performance improvements with in-memory technologies.

A continuación se muestran dos ejemplos de cómo OLTP en memoria ayudó significativamente a mejorar el rendimiento:Here are two examples of how In-Memory OLTP helped to significantly improve performance:

Nota

Las tecnologías en memoria están disponibles en los niveles Premium y Crítico para la empresa.In-memory technologies are available in the Premium and Business Critical tiers.

En el siguiente vídeo se explican posibles mejoras de rendimiento obtenidas con las tecnologías en memoria.The following video explains potential performance gains with in-memory technologies. Tenga presente que la mejora de rendimiento que obtenga depende siempre de muchos factores, como la naturaleza de la carga de trabajo y los datos, los patrones de acceso de la base de datos, etc.Remember that the performance gain that you see always depends on many factors, including the nature of the workload and data, access pattern of the database, and so on.

En este artículo, se describen aspectos de OLTP en memoria y los índices de almacén de columnas específicos de Azure SQL Database e Instancia administrada de Azure SQL, junto con algunos ejemplos:This article describes aspects of In-Memory OLTP and columnstore indexes that are specific to Azure SQL Database and Azure SQL Managed Instance, and also includes samples:

  • Veremos la repercusión de estas tecnologías en el almacenamiento, así como en los límites de tamaño de los datos.You'll see the impact of these technologies on storage and data size limits.
  • Después trataremos cómo administrar el movimiento de bases de datos que usan estas tecnologías entre los distintos planes de tarifa.You'll see how to manage the movement of databases that use these technologies between the different pricing tiers.
  • Y también veremos dos ejemplos que ilustran el uso de OLTP en memoria y de los índices del almacén de columnas.You'll see two samples that illustrate the use of In-Memory OLTP, as well as columnstore indexes.

Para obtener más información sobre OLTP en memoria en SQL Server, consulte:For more information about in-memory in SQL Server, see:

OLTP en memoriaIn-Memory OLTP

La tecnología OLTP en memoria proporciona operaciones de acceso a datos sumamente rápidas al mantener todos los datos en memoria.In-Memory OLTP technology provides extremely fast data access operations by keeping all data in memory. Además, usa índices especializados, compilación nativa de consultas y acceso a datos libre de bloqueos temporales para mejorar el rendimiento de la carga de trabajo OLTP.It also uses specialized indexes, native compilation of queries, and latch-free data-access to improve performance of the OLTP workload. Hay dos maneras de organizar los datos de OLTP en memoria:There are two ways to organize your In-Memory OLTP data:

  • El formato almacén de filas optimizadas para memoria , en el que cada fila es un objeto de memoria independiente.Memory-optimized rowstore format where every row is a separate memory object. Se trata de un formato clásico de OLTP en memoria optimizado para cargas de trabajo OLTP de alto rendimiento.This is a classic In-Memory OLTP format optimized for high-performance OLTP workloads. Existen dos tipos de tablas optimizadas para memoria que se pueden usar en el formato de almacén de filas optimizadas para memoria:There are two types of memory-optimized tables that can be used in the memory-optimized rowstore format:

    • Tablas duraderas (SCHEMA_AND_DATA), en las que las filas que se encuentran en la memoria se conservan después de reiniciar el servidor.Durable tables (SCHEMA_AND_DATA) where the rows placed in memory are preserved after server restart. Este tipo de tablas se comporta como una tabla de almacén de filas tradicional, con las ventajas adicionales de las optimizaciones en memoria.This type of tables behaves like a traditional rowstore table with the additional benefits of in-memory optimizations.
    • Tablas no duraderas (SCHEMA_ONLY), en las que las filas no se conservan después del reinicio.Non-durable tables (SCHEMA_ONLY) where the rows are not-preserved after restart. Este tipo de tabla está diseñado para datos temporales (por ejemplo, tablas temporales o de reemplazo) o para tablas en las que necesite cargar datos rápidamente antes de moverlos a alguna tabla persistente (denominadas "tablas de almacenamiento provisional").This type of table is designed for temporary data (for example, replacement of temp tables), or tables where you need to quickly load data before you move it to some persisted table (so called staging tables).
  • El formato Almacén de columnas optimizadas para memoria , en el que los datos se organizan en un formato de columnas.Memory-optimized columnstore format where data is organized in a columnar format. Esta estructura está diseñada para escenarios HTAP donde es necesario ejecutar consultas analíticas en la misma estructura de datos en la que se está ejecutando la carga de trabajo OLTP.This structure is designed for HTAP scenarios where you need to run analytic queries on the same data structure where your OLTP workload is running.

Nota

La tecnología de OLTP en memoria está diseñada para las estructuras de datos que pueden residir completamente en memoria.In-Memory OLTP technology is designed for the data structures that can fully reside in memory. Puesto que no se pueden descargar los datos en memoria en el disco, asegúrese de usar una base de datos que tenga memoria suficiente.Since the In-memory data cannot be offloaded to disk, make sure that you are using database that has enough memory. Consulte Límite de almacenamiento y tamaño de datos para OLTP en memoria para conocer más detalles.See Data size and storage cap for In-Memory OLTP for more details.

Una guía rápida sobre OLTP en memoria: Inicio rápido 1: Tecnologías de OLTP en memoria para acelerar el rendimiento de Transact-SQL es otro artículo que le ayudará a empezar a trabajarA quick primer on In-Memory OLTP: Quickstart 1: In-Memory OLTP Technologies for Faster T-SQL Performance (another article to help you get started)

Vídeos detallados sobre las tecnologías:In-depth videos about the technologies:

No existe ningún mecanismo de programación para comprender si una base de datos específica admite OLTP en memoria.There is a programmatic way to understand whether a given database supports In-Memory OLTP. Puede ejecutar la siguiente consulta de Transact-SQL:You can execute the following Transact-SQL query:

SELECT DatabasePropertyEx(DB_NAME(), 'IsXTPSupported');

Si la consulta devuelve 1 , OLTP en memoria se admite en esta base de datos.If the query returns 1 , In-Memory OLTP is supported in this database. Las siguientes consultas identifican todos los objetos que deben quitarse antes de que el nivel de una base de datos pueda degradarse a De uso general, Estándar o Básico:The following queries identify all objects that need to be removed before a database can be downgraded to General Purpose, Standard, or Basic:

SELECT * FROM sys.tables WHERE is_memory_optimized=1
SELECT * FROM sys.table_types WHERE is_memory_optimized=1
SELECT * FROM sys.sql_modules WHERE uses_native_compilation=1

Límite de almacenamiento y tamaño de datos para OLTP en memoriaData size and storage cap for In-Memory OLTP

OLTP en memoria incluye tablas optimizadas para memoria, que se usan para almacenar los datos de los usuarios.In-Memory OLTP includes memory-optimized tables, which are used for storing user data. Estas tablas deben caber en la memoria.These tables are required to fit in memory. Dado que administra la memoria directamente en SQL Database, tenemos el concepto de una cuota para datos de usuario.Because you manage memory directly in SQL Database, we have the concept of a quota for user data. Esta idea se conoce como almacenamiento de OLTP en memoria .This idea is referred to as In-Memory OLTP storage .

Cada plan de tarifa de grupo elástico y de base de datos única admitido incluye una cantidad determinada de almacenamiento de OLTP en memoria.Each supported single database pricing tier and each elastic pool pricing tier includes a certain amount of In-Memory OLTP storage.

Los siguientes elementos cuentan para su límite de almacenamiento de OLTP en memoria:The following items count toward your In-Memory OLTP storage cap:

  • Las filas de datos de usuarios activos en tablas optimizadas para memoria y variables de tabla.Active user data rows in memory-optimized tables and table variables. Tenga en cuenta que las versiones antiguas de las filas no cuentan para el límite.Note that old row versions don't count toward the cap.
  • Los índices de tablas optimizadas para memoria.Indexes on memory-optimized tables.
  • La sobrecarga operacional de operaciones ALTER TABLE.Operational overhead of ALTER TABLE operations.

Si alcanza el límite, recibirá un error que le notificará que se ha quedado sin cuota y no podrá volver a insertar o actualizar datos.If you hit the cap, you receive an out-of-quota error, and you are no longer able to insert or update data. Para mitigar este error, elimine datos o aumente el plan de tarifa de la base de datos o del grupo.To mitigate this error, delete data or increase the pricing tier of the database or pool.

Para obtener más información sobre cómo supervisar la utilización del almacenamiento de OLTP en memoria y configurar alertas que se activen cuando casi haya alcanzado el límite, consulte Supervisión del almacenamiento en memoria.For details about monitoring In-Memory OLTP storage utilization and configuring alerts when you almost hit the cap, see Monitor in-memory storage.

Acerca de los grupos elásticosAbout elastic pools

Con grupos elásticos, el almacenamiento de OLTP en memoria se comparte entre todas las bases de datos del grupo.With elastic pools, the In-Memory OLTP storage is shared across all databases in the pool. Por lo tanto, el uso de una base de datos puede afectar a otras bases de datos.Therefore, the usage in one database can potentially affect other databases. Existen dos formas de mitigar este problema:Two mitigations for this are:

  • Configure un valor Max-eDTU o MaxvCore para las bases de datos que sea inferior al recuento de eDTU o núcleos virtuales del grupo como un todo.Configure a Max-eDTU or MaxvCore for databases that is lower than the eDTU or vCore count for the pool as a whole. De este modo, se limita la utilización del almacenamiento de OLTP en memoria en cualquier base de datos del grupo al tamaño correspondiente al número de eDTU.This maximum caps the In-Memory OLTP storage utilization, in any database in the pool, to the size that corresponds to the eDTU count.
  • Configure un valor Min-eDTU o MinvCore que sea mayor que 0.Configure a Min-eDTU or MinvCore that is greater than 0. Este mínimo garantiza que cada base de datos del grupo tenga la cantidad de almacenamiento de OLTP en memoria disponible que corresponda al valor Min-eDTU o vCore configurado.This minimum guarantees that each database in the pool has the amount of available In-Memory OLTP storage that corresponds to the configured Min-eDTU or vCore.

Cambio de los niveles de servicio de las bases de datos que usan tecnologías de OLTP en memoriaChanging service tiers of databases that use In-Memory OLTP technologies

Siempre puede actualizar su base de datos o instancia a un plan superior, como de uso General a Crítico para la empresa (o de Estándar a Premium).You can always upgrade your database or instance to a higher tier, such as from General Purpose to Business Critical (or Standard to Premium). Solo aumenta la funcionalidad y los recursos disponibles.The available functionality and resources only increase.

Pero cambiar a un nivel inferior puede repercutir negativamente en la base de datos.But downgrading the tier can negatively impact your database. El impacto es especialmente evidente al cambiar de Crítico para la empresa a De uso general (o de Premium a Estándar o Básico) cuando la base de datos contiene objetos de OLTP en memoria.The impact is especially apparent when you downgrade from Business Critical to General Purpose (or Premium to Standard or Basic) when your database contains In-Memory OLTP objects. Las tablas optimizadas para memoria no están disponibles después del cambio a una versión anterior (aunque sigan estando visibles).Memory-optimized tables are unavailable after the downgrade (even if they remain visible). Lo mismo se aplica al reducir el plan de tarifa de un grupo elástico o mover bases de datos con tecnologías en memoria a un grupo elástico De uso general, Estándar o Básico.The same considerations apply when you're lowering the pricing tier of an elastic pool, or moving a database with in-memory technologies, into a General Purpose, Standard, or Basic elastic pool.

Importante

OLTP en memoria no se admite en los planes De uso general, Estándar o Básico.In-Memory OLTP isn't supported in the General Purpose, Standard or Basic tier. Por lo tanto, no es posible mover una base de datos con objetos de OLTP en memoria a uno de estos niveles.Therefore, it isn't possible to move a database that has any In-Memory OLTP objects to one of these tiers.

Antes de degradar el plan de tarifa de una base de datos a De uso general, Estándar o Básico, quite todos los tipos de tabla y las tablas optimizadas para memoria, así como todos los módulos de Transact-SQL compilados de forma nativa.Before you downgrade the database to General Purpose, Standard, or Basic, remove all memory-optimized tables and table types, as well as all natively compiled T-SQL modules.

Reducir verticalmente los recursos en el plan Crítico para la empresa : Los datos de las tablas optimizadas para memoria deben caber en el almacenamiento de OLTP en memoria asociado al plan de la base de datos o instancia administrada o disponible en el grupo elástico.Scaling-down resources in Business Critical tier : Data in memory-optimized tables must fit within the In-Memory OLTP storage that is associated with the tier of the database or the managed instance, or it is available in the elastic pool. Si trata de reducir verticalmente el plan o mover la base de datos a un grupo que no disponga de almacenamiento de OLTP en memoria suficiente, la operación no se desarrolla correctamente.If you try to scale-down the tier or move the database into a pool that doesn't have enough available In-Memory OLTP storage, the operation fails.

Almacén de columnas en memoriaIn-memory columnstore

La tecnología de almacén de columnas en memoria es lo que le permite almacenar y consultar una gran cantidad de datos en las tablas.In-memory columnstore technology is enabling you to store and query a large amount of data in the tables. La tecnología de almacén de columnas usa el formato de almacenamiento de datos basado en columnas y procesamiento de consultas por lotes para lograr hasta 10 veces el rendimiento de las consultas en las cargas de trabajo OLAP con almacenamiento tradicional orientado a filas.Columnstore technology uses column-based data storage format and batch query processing to achieve gain up to 10 times the query performance in OLAP workloads over traditional row-oriented storage. También puede lograr ganancias de hasta 10 veces la compresión de datos sobre el tamaño de los datos sin comprimir.You can also achieve gains up to 10 times the data compression over the uncompressed data size. Hay dos tipos de modelos de almacén de columnas que puede usar para organizar los datos:There are two types of columnstore models that you can use to organize your data:

  • Almacén de columnas en clúster donde todos los datos en la tabla se organizan con el formato de columnas.Clustered columnstore where all data in the table is organized in the columnar format. En este modelo, todas las filas de la tabla se colocan en un formato de columnas que comprime enormemente los datos y le permite ejecutar informes y consultas analíticas rápidas en la tabla.In this model, all rows in the table are placed in columnar format that highly compresses the data and enables you to execute fast analytical queries and reports on the table. Según la naturaleza de los datos, el tamaño de los datos puede disminuirse entre 10 y 100 veces.Depending on the nature of your data, the size of your data might be decreased 10x-100x. El modelo de almacén de columnas en clúster también permite la ingesta rápida de grandes cantidades de datos (carga masiva), ya que los lotes grandes de datos con más de 100 000 filas se comprimen antes de almacenarse en el disco.Clustered columnstore model also enables fast ingestion of large amount of data (bulk-load) since large batches of data greater than 100K rows are compressed before they are stored on disk. Este modelo es una buena elección para los escenarios de almacenamiento de datos clásicos.This model is a good choice for the classic data warehouse scenarios.
  • Almacén de columnas no en clúster , donde los datos se almacenan en una tabla de almacén de filas tradicional y hay un índice en formato de almacén de columnas que se usa para las consultas analíticas.Non-clustered columnstore where the data is stored in traditional rowstore table and there is an index in the columnstore format that is used for the analytical queries. Este modelo permite el procesamiento analítico-transaccional híbrido (HTAP): la capacidad de ejecutar análisis en tiempo real de alto rendimiento en una carga de trabajo transaccional.This model enables Hybrid Transactional-Analytic Processing (HTAP): the ability to run performant real-time analytics on a transactional workload. Las consultas OLTP se ejecutan en la tabla de almacén de filas que está optimizada para tener acceso a un pequeño conjunto de filas, mientras que las consultas OLAP se ejecutan en el índice de almacén de columnas, que es la mejor opción para exámenes y análisis.OLTP queries are executed on rowstore table that is optimized for accessing a small set of rows, while OLAP queries are executed on columnstore index that is better choice for scans and analytics. El optimizador de consultas elige dinámicamente el formato de almacén de filas o almacén de columnas en función de la consulta.The query optimizer dynamically chooses rowstore or columnstore format based on the query. Los índices de almacén de columnas no en clúster no reducen el tamaño de los datos, ya que el conjunto de datos original se conserva en la tabla de almacén de filas original sin realizar ningún cambio.Non-clustered columnstore indexes don't decrease the size of the data since original data-set is kept in the original rowstore table without any change. Sin embargo, el tamaño del índice de almacén de columnas adicional debe ser, en orden de magnitud, menor que el índice de árbol B equivalente.However, the size of additional columnstore index should be in order of magnitude smaller than the equivalent B-tree index.

Nota

La tecnología de almacén de columnas en memoria conserva únicamente los datos que se necesitan para su procesamiento en la memoria, mientras que los datos que no quepan en la memoria se almacenan en disco.In-memory columnstore technology keeps only the data that is needed for processing in the memory, while the data that cannot fit into the memory is stored on-disk. Por lo tanto, la cantidad de datos en las estructuras de almacén de columnas en memoria puede superar la cantidad de memoria disponible.Therefore, the amount of data in in-memory columnstore structures can exceed the amount of available memory.

Vídeo detallado sobre la tecnología:In-depth video about the technology:

Almacenamiento y tamaño de datos para los índices de almacén de columnasData size and storage for columnstore indexes

No se requiere que los índices de almacén de columnas quepan en la memoria.Columnstore indexes aren't required to fit in memory. Por lo tanto, el único límite del tamaño de los índices es el tamaño máximo global de la base de datos, que está documentado en los artículos sobre el modelo de compra basado en DTU y el modelo de compra basado en núcleo virtual.Therefore, the only cap on the size of the indexes is the maximum overall database size, which is documented in the DTU-based purchasing model and vCore-based purchasing model articles.

Al utilizar los índices de almacén de columnas en clúster, se emplea una compresión de columnas para el almacenamiento de la tabla base.When you use clustered columnstore indexes, columnar compression is used for the base table storage. Esta compresión puede reducir considerablemente el consumo de almacenamiento de sus datos de usuario, lo que significa que la base de datos podrá albergar más información.This compression can significantly reduce the storage footprint of your user data, which means that you can fit more data in the database. Y es posible aumentar este compresión aún más con la compresión de archivo de columnas.And the compression can be further increased with columnar archival compression. La cantidad de compresión que puede lograr depende de la naturaleza de los datos, pero no es raro obtener una compresión que reduzca el tamaño en 10 veces.The amount of compression that you can achieve depends on the nature of the data, but 10 times the compression is not uncommon.

Por ejemplo, si tiene una base de datos con el tamaño máximo de 1 terabyte (TB) y logra una compresión de 10 veces con índices de almacén de columnas, puede incluir un total de 10 TB de datos de usuario en la base de datos.For example, if you have a database with a maximum size of 1 terabyte (TB) and you achieve 10 times the compression by using columnstore indexes, you can fit a total of 10 TB of user data in the database.

Al utilizar índices de almacén de columnas no agrupados, la tabla base sigue almacenada en el formato de almacenamiento de filas tradicional.When you use nonclustered columnstore indexes, the base table is still stored in the traditional rowstore format. Por lo tanto, el ahorro de almacenamiento no es tan considerable como con los índices de almacén de columnas agrupados.Therefore, the storage savings aren't as significant as with clustered columnstore indexes. Pero si sustituye diversos índices no agrupados tradicionales por un único índice de almacén de columnas, aún podrá obtener un ahorro global en el espacio de almacenamiento de la tabla.However, if you're replacing a number of traditional nonclustered indexes with a single columnstore index, you can still see an overall savings in the storage footprint for the table.

Cambio de los niveles de servicio de las bases de datos que contienen índices de almacén de columnasChanging service tiers of databases containing Columnstore indexes

Cambiar una base de datos única a un plan Básico o Estándar no sería posible si el nivel de destino está por debajo de S3.Downgrading single database to Basic or Standard might not be possible if your target tier is below S3. Los índices de almacén de columnas solo se admiten en los planes de tarifa Premium, Crítico para la empresa y Estándar (S3 y superior), no en el plan Básico.Columnstore indexes are supported only on the Business Critical/Premium pricing tier and on the Standard tier, S3 and above, and not on the Basic tier. Si se cambia la base de datos a un nivel inferior incompatible, el índice de almacén de columnas dejará de estar disponible.When you downgrade your database to an unsupported tier or level, your columnstore index becomes unavailable. El sistema mantiene el índice de almacén de columnas, pero no aprovecha el índice.The system maintains your columnstore index, but it never leverages the index. Si, más tarde, vuelve a actualizar a un plan o nivel superior compatible, el almacén de columnas estará listo inmediatamente para volver a sacar el máximo partido.If you later upgrade back to a supported tier or level, your columnstore index is immediately ready to be leveraged again.

Si tiene un índice de almacén de columnas en clúster , toda la tabla deja de estar disponible después del cambio a un nivel inferior.If you have a clustered columnstore index, the whole table becomes unavailable after the downgrade. Por lo tanto, se recomienda quitar todos los índices de almacén de columnas en clúster antes de cambiar la base de datos a un nivel o plan inferior incompatible.Therefore we recommend that you drop all clustered columnstore indexes before you downgrade your database to an unsupported tier or level.

Nota

SQL Managed Instance admite índices de almacén de columnas en todos los niveles.SQL Managed Instance supports Columnstore indexes in all tiers.

Pasos siguientesNext steps

Recursos adicionalesAdditional resources

Información más detalladaDeeper information

Diseño de aplicaciónApplication design

HerramientasTools