Columnstore 인덱스 - 개요Columnstore indexes - overview

이 항목 적용 대상: 예SQL Server예Azure SQL 데이터베이스예Azure SQL 데이터 웨어하우스 예 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

columnstore 인덱스 는 대규모 데이터 웨어하우징 팩트 테이블을 저장하고 쿼리하는 표준입니다.The columnstore index is the standard for storing and querying large data warehousing fact tables. 열 기반 데이터 저장소 및 쿼리 처리를 사용하여 데이터 웨어하우스에서 기존 행 기반 저장소보다 최대 10배 높은 쿼리 성능 을 실현하고 압축되지 않은 데이터 크기보다 최대 10배 높은 데이터 압축 을 실현합니다.It uses column-based data storage and query processing to achieve up to 10x query performance gains in your data warehouse over traditional row-oriented storage, and up to 10x data compression over the uncompressed data size. SQL Server 2016SQL Server 2016부터 columnstore 인덱스는 트랜잭션 워크로드에 대해 고성능 실시간 분석을 실행하는 기능인 운영 분석을 지원합니다.Beginning with SQL Server 2016SQL Server 2016, columnstore indexes enable operational analytics, the ability to run performant real-time analytics on a transactional workload.

다음 시나리오로 이동:Jump to scenarios:

columnstore 인덱스란?What is a columnstore index?

columnstore index 는 columnstore라는 칼럼 데이터 형식을 사용하여 데이터를 저장, 검색 및 관리하는 기술입니다.A columnstore index is a technology for storing, retrieving and managing data by using a columnar data format, called a columnstore.

주요 용어 및 개념Key terms and concepts

다음은 columnstore 인덱스와 관련된 주요 용어와 개념입니다.These are key terms and concepts are associated with columnstore indexes.

columnstorecolumnstore
columnstore 는 열과 행이 있는 테이블로 논리적으로 구성되고 열 데이터 형식으로 물리적으로 저장되는 데이터입니다.A columnstore is data that is logically organized as a table with rows and columns, and physically stored in a column-wise data format.

rowstorerowstore
rowstore 는 열과 행이 있는 테이블로 논리적으로 구성되고 행 데이터 형식으로 물리적으로 저장되는 데이터입니다.A rowstore is data that is logically organized as a table with rows and columns, and then physically stored in a row-wise data format. 이 방식은 관계형 테이블 데이터를 저장하는 전통적인 방법이었습니다.This has been the traditional way to store relational table data. SQL Server에서 rowstore는 기본 데이터 저장소 형식이 힙, 클러스터형 인덱스인 테이블 또는 메모리 최적화 테이블을 참조합니다.In SQL Server, rowstore refers to table where the underlying data storage format is a heap, a clustered index, or a memory-optimized table.

참고

Columnstore 인덱스에 대한 설명에서는 데이터 저장소에 대한 형식을 강조하기 위해 rowstorecolumnstore 라는 용어를 사용합니다.In discussions about columnstore indexes, we use the terms rowstore and columnstore to emphasize the format for the data storage.

행 그룹rowgroup
행 그룹 은 columnstore 형식으로 동시에 압축되는 행의 그룹입니다.A row group is a group of rows that are compressed into columnstore format at the same time. 열 그룹에는 대개 1,048,576개(행 그룹당 최대 행 수)의 행이 포함됩니다.A rowgroup usually contains the maximum number of rows per rowgroup which is 1,048,576 rows.

성능과 압축률을 높이기 위해 columnstore 인덱스는 테이블을 여러 행 그룹으로 조각화한 후 각 행 그룹을 열 방식으로 압축합니다.For high performance and high compression rates, the columnstore index slices the table into groups of rows, called rowgroups, and then compresses each rowgroup in a column-wise manner. 행 그룹의 행 수는 압축률을 높일 만큼 크고, 메모리 내 작업을 활용할 만큼 작아야 합니다.The number of rows in the rowgroup must be large enough to improve compression rates, and small enough to benefit from in-memory operations.

열 세그먼트column segment
열 세그먼트 는 행 그룹 내의 데이터 열입니다.A column segment is a column of data from within the rowgroup.

  • 각 행 그룹에는 테이블의 모든 열에 대해 각각 하나의 열 세그먼트가 포함됩니다.Each rowgroup contains one column segment for every column in the table.

  • 각 열 세그먼트는 함께 압축되며 실제 미디어에 저장됩니다.Each column segment is compressed together and stored on physical media.

    Column segmentColumn segment

    클러스터형 columnstore 인덱스clustered columnstore index
    클러스터형 columnstore 인덱스 는 전체 테이블에 대한 물리적 저장소입니다.A clustered columnstore index is the physical storage for the entire table.

    Clustered Columnstore IndexClustered Columnstore Index

    열 세그먼트의 조각화를 줄이고 성능을 향상시키기 위해 columnstore 인덱스는 삭제된 행에 대한 ID의 btree 목록과 함께 deltastore라는 클러스터형 인덱스에 일부 데이터를 임시로 저장할 수 있습니다.To reduce fragmentation of the column segments and improve performance, the columnstore index might store some data temporarily into a clustered index, which is called a deltastore, and a btree list of IDs for deleted rows. deltastore 작업은 백그라운드에서 처리됩니다.The deltastore operations are handled behind the scenes. 정확한 쿼리 결과를 반환하기 위해 클러스터형 columnstore 인덱스는 columnstore와 deltastore의 쿼리 결과를 모두 결합합니다.To return the correct query results, the clustered columnstore index combines query results from both the columnstore and the deltastore.

    deltastoredeltastore
    클러스터형 열 저장소 인덱스에만 사용되는 deltastore 는 행 수가 임계값에 도달한 다음 columnstore로 이동할 때까지 행을 저장하여 columnstore 압축 및 성능을 개선하는 클러스터형 인덱스입니다.Used with clustered column store indexes only, a deltastore is a clustered index that improves columnstore compression and performance by storing rows until the number of rows reaches a threshold and are then moved into the columnstore.

    대규모 대량 로드 중에 대부분의 행은 deltastore를 통과하지 않고 columnstore로 곧바로 이동합니다.During a large bulk load, most of the rows go directly to the columnstore without passing through the deltastore. 대량 로드 끝부분의 일부 행은 수가 너무 적어서 행 그룹의 최소 크기(102,400개 행)에 맞지 않을 수 있습니다.Some rows at the end of the bulk load might be too few in number to meet the minimum size of a rowgroup which is 102,400 rows. 이 경우 최종 행은 columnstore 대신 deltastore로 이동합니다.When this happens, the final rows go to the deltastore instead of the columnstore. 행 수가 102,400개 미만인 소규모 대량 로드의 경우 모든 행이 deltastore로 곧바로 이동합니다.For small bulk loads with less than 102,400 rows, all of the rows go directly to the deltastore.

    deltastore가 최대 행 수에 도달하면 닫힙니다.When the deltastore reaches the maximum number of rows, it becomes closed. 튜플 이동기 프로세스는 닫힌 행 그룹이 있는지 확인합니다.A tuple-mover process checks for closed row groups. 닫힌 행 그룹을 찾으면 압축하여 columnstore에 저장합니다.When it finds the closed rowgroup, it compresses it and stores it into the columnstore.

    비클러스터형 columnstore 인덱스nonclustered columnstore index
    비클러스터형 columnstore 인덱스 와 클러스터형 columnstore 인덱스는 동일하게 작동합니다.A nonclustered columnstore index and a clustered columnstore index function the same. 차이점은 비클러스터형 인덱스는 rowstore 테이블에 만들어지는 보조 인덱스인 반면, 클러스터형 columnstore 인덱스는 전체 테이블에 대한 기본 저장소라는 점입니다.The difference is a nonclustered index is a secondary index created on a rowstore table, whereas a clustered columnstore index is the primary storage for the entire table.

    비클러스터형 인덱스는 기본 테이블에 있는 행과 열의 전체 또는 일부에 대한 복사본을 포함합니다.The nonclustered index contains a copy of part or all of the rows and columns in the underlying table. 이 인덱스는 테이블의 하나 이상의 열로 정의되며 행을 필터링하는 선택적 조건이 있습니다.The index is defined as one or more columns of the table, and has an optional condition that filters the rows.

    비클러스터형 columnstore 인덱스는 columnstore 인덱스에서 분석이 동시에 실행되는 동안 OLTP 워크로드에서 기본 클러스터형 인덱스를 사용하는 실시간 운영 분석을 지원합니다.A nonclustered columnstore index enables real-time operational analytics in which the OLTP workload uses the underlying clustered index, while analytics run concurrently on the columnstore index. 자세한 내용은 실시간 운영 분석을 위한 Columnstore 시작을 참조하세요.For more information, see Get started with Columnstore for real time operational analytics.

    일괄 처리 실행batch execution
    일괄 처리 실행 은 쿼리에서 여러 행을 함께 처리하는 쿼리 처리 방법입니다.Batch execution is a query processing method in which queries process multiple rows together. Columnstore 인덱스에 대한 쿼리는 일반적으로 쿼리 성능을 2~4배 개선하는 일괄 처리 모드 실행을 사용합니다.Queries on columnstore indexes use batch mode execution which improves query performance typically 2-4x. 일괄 처리 모드 실행은 columnstore 저장소 형식과 긴밀히 통합되고 그에 맞게 최적화되어 있습니다.Batch execution is closely integrated with, and optimized around, the columnstore storage format. 배치 모드 실행을 벡터 기반 또는 벡터화된 실행이라고도 합니다.Batch-mode execution is sometimes known as vector-based or vectorized execution.

Columnstore 인덱스를 사용해야 하는 이유Why should I use a columnstore index?

Columnstore 인덱스는 매우 높은 수준의 데이터 압축(일반적으로 10배)을 제공하여 데이터 웨어하우스 저장소 비용을 크게 줄일 수 있습니다.A columnstore index can provide a very high level of data compression, typically 10x, to reduce your data warehouse storage cost significantly. 또한 분석을 위해 btree 인덱스보다 몇 배 더 나은 성능을 제공합니다.Plus, for analytics they offer an order of magnitude better performance than a btree index. 이는 데이터 웨어하우징 및 분석 작업에 대한 기본 설정된 데이터 저장소 형식입니다.They are the preferred data storage format for data warehousing and analytics workloads. SQL Server 2016SQL Server 2016부터 운영 워크로드에 대한 실시간 분석에 columnstore 인덱스를 사용할 수 있습니다.Starting with SQL Server 2016SQL Server 2016, you can use columnstore indexes for real-time analytics on your operational workload.

Columnstore 인덱스가 빠른 이유는 다음과 같습니다.Reasons why columnstore indexes are so fast:

  • 열이 동일한 도메인의 값을 저장하고 일반적으로 유사한 값을 가지므로 압축 비율이 높습니다.Columns store values from the same domain and commonly have similar values, which results in high compression rates. 이는 시스템에서 IO 병목 현상을 최소화하거나 제거하는 동사에 메모리 사용 공간을 크게 줄입니다.This minimizes or eliminates IO bottleneck in your system while reducing the memory footprint significantly.

  • 압축 비율이 높으면 메모리 내 사용 공간이 감소되어 쿼리 성능이 향상됩니다.High compression rates improve query performance by using a smaller in-memory footprint. 또한 SQL ServerSQL Server 가 더 많은 쿼리 및 데이터 작업을 메모리 내에서 수행할 수 있으므로 쿼리 성능도 개선할 수 있습니다.In turn, query performance can improve because SQL ServerSQL Server can perform more query and data operations in-memory.

  • 일괄 처리 실행은 여러 행을 함께 처리하여 쿼리 성능을 개선합니다(일반적으로 2~4배).Batch execution improves query performance, typically 2-4x, by processing multiple rows together.

  • 쿼리는 대개 테이블에서 적은 수의 열만 선택하므로 실제 미디어의 총 I/O가 감소됩니다.Queries often select only a few columns from a table, which reduces total I/O from the physical media.

Columnstore 인덱스를 사용해야 하는 경우When should I use a columnstore index?

권장 사용 사례:Recommended use cases:

Rowstore 인덱스와 Columnstore 인덱스 간에 선택하려면 어떻게 해야 합니까?How do I choose between a rowstore index and a columnstore index?

Rowstore 인덱스는 데이터를 찾는 쿼리, 특정 값을 검색하는 쿼리 또는 작은 범위의 값에 대한 쿼리에 가장 적합합니다.Rowstore indexes perform best on queries that seek into the data, searching for a particular value, or for queries on a small range of values. Rowstore 인덱스는 테이블 검색 대신 주로 테이블 찾기가 필요한 경향이 있으므로 트랜잭션 워크로드에서 사용됩니다.Use rowstore indexes with transactional workloads since they tend to require mostly table seeks instead of table scans.

Columnstore 인덱스는 특히 대규모 테이블에서 많은 양의 데이터를 검색하는 분석 쿼리에 대한 높은 성능 향상을 제공합니다.Columnstore indexes give high performance gains for analytic queries that scan large amounts of data, especially on large tables. Columnstore 인덱스는 테이블 찾기 대신 전체 테이블 검색이 필요한 경향이 있으므로 특히 팩트 테이블에서 데이터 웨어하우징 및 분석 워크로드에 사용됩니다.Use columnstore indexes on data warehousing and analytics workloads, especially on fact tables, since they tend to require full table scans rather than table seeks.

Rowstore와 Columnstore를 동일한 테이블에서 결합할 수 있습니까?Can I combine rowstore and columnstore on the same table?

Yes. SQL Server 2016SQL Server 2016부터 rowstore 테이블에서 업데이트 가능한 비클러스터형 columnstore 인덱스를 만들 수 있습니다.Beginning with SQL Server 2016SQL Server 2016, you can create an updatable nonclustered columnstore index on a rowstore table. Columnstore 인덱스는 선택한 열의 복사본을 저장하므로 복사본에 대한 추가 공간이 필요하지만 평균 10배로 압축됩니다.The columnstore index stores a copy of the chosen columns so you do need extra space for this but it will be compressed on average by 10x. 따라서 columnstore 인덱스에서 분석을 실행하고 이와 동시에 rowstore 인덱스에서 트랜잭션을 실행할 수 있습니다.By doing this, you can run analytics on the columnstore index and transactions on the rowstore index at the same time. rowstore 테이블의 데이터가 변경되면 columnstore가 업데이트되므로 두 인덱스 모두 동일한 데이터에 대해 작동합니다.The column store is updated when data changes in the rowstore table, so both indexes are working against the same data.

SQL Server 2016SQL Server 2016부터 하나의 클러스터형 columnstore 인덱스에서 하나 이상의 비클러스터형 rowstore 인덱스를 사용할 수 있습니다.Beginning with SQL Server 2016SQL Server 2016, you can have one or more nonclustered rowstore indexes on a columnstore index. 따라서 기본 columnstore에서 효율적인 테이블 찾기를 수행할 수 있습니다.By doing this, you can perform efficient table seeks on the underlying columnstore. 다른 옵션도 사용할 수 있습니다.Other options become available too. 예를 들어 rowstore 테이블에서 UNIQUE 제약 조건을 사용하여 기본 키 제약 조건을 적용할 수 있습니다.For example, you can enforce a primary key constraint by using a UNIQUE constraint on the rowstore table. 고유하지 않은 값은 rowstore 테이블에 삽입하지 못하므로 SQL Server에서 columnstore에 값을 삽입할 수 없습니다.Since an non-unique value will fail to insert into the rowstore table, SQL Server cannot insert the value into the columnstore.

메타데이터Metadata

columnstore 인덱스에 있는 모든 열이 메타데이터에 포괄 열로 저장됩니다.All of the columns in a columnstore index are stored in the metadata as included columns. columnstore 인덱스에는 키 열이 없습니다.The columnstore index does not have key columns.

모든 관계형 테이블은 클러스터형 columnstore 인덱스로 지정하지 않는 한 rowstore를 기본 데이터 형식으로 사용합니다.All relational tables, unless you specify them as a clustered columnstore index, use rowstore as the underlying data format. CREATE TABLE은 WITH CLUSTERED COLUMNSTORE INDEX 옵션을 지정하지 않는 한 rowstore 테이블을 만듭니다.CREATE TABLE creates a rowstore table unless you specify the WITH CLUSTERED COLUMNSTORE INDEX option.

CREATE TABLE 문을 사용하여 테이블을 만드는 경우 WITH CLUSTERED COLUMNSTORE INDEX 옵션을 지정하여 테이블을 columnstore로 만들 수 있습니다.When you create a table with the CREATE TABLE statement you can create the table as a columnstore by specifying the WITH CLUSTERED COLUMNSTORE INDEX option. Rowstore 테이블이 이미 있는 경우 이를 columnstore로 변환하려면 CREATE COLUMNSTORE INDEX 문을 사용합니다.If you already have a rowstore table and want to convert it to a columnstore, you can use the CREATE COLUMNSTORE INDEX statement. 예제는 다음을 참조하세요.For examples, see.

태스크Task 참조 항목Reference Topics 참고Notes
테이블을 columnstore로 만듭니다.Create a table as a columnstore. CREATE TABLE(Transact-SQL)CREATE TABLE (Transact-SQL) SQL Server 2016SQL Server 2016부터 테이블을 클러스터형 columnstore 인덱스로 만들 수 있습니다.Beginning with SQL Server 2016SQL Server 2016, you can create the table as a clustered columnstore index. 먼저 rowstore 테이블을 만든 다음 이를 columnstore로 변환할 필요가 없습니다.You do not have to first create a rowstore table and then convert it to columnstore.
columnstore 인덱스가 포함된 메모리 테이블을 만듭니다.Create a memory table with a columnstore index. CREATE TABLE(Transact-SQL)CREATE TABLE (Transact-SQL)
SQL Server 2016SQL Server 2016부터 columnstore 인덱스가 포함된 메모리 최적화 테이블을 만들 수 있습니다.Beginning with SQL Server 2016SQL Server 2016, you can create a memory-optimized table with a columnstore index. 테이블을 만든 후 ALTER TABLE ADD INDEX 구문을 사용하여 columnstore 인덱스를 추가할 수도 있습니다.The columnstore index can also be added after the table is created, using the ALTER TABLE ADD INDEX syntax.
rowstore 테이블을 columnstore로 변환합니다.Convert a rowstore table to a columnstore. CREATE COLUMNSTORE INDEX(Transact-SQL)CREATE COLUMNSTORE INDEX (Transact-SQL) 기존 힙 또는 이진 트리를 columnstore로 변환합니다.Convert an existing heap or binary tree to a columnstore. 예제에서는 이 변환을 수행할 때 기존 인덱스 및 인덱스 이름을 처리하는 방법을 보여 줍니다.Examples show how to handle existing indexes and also the name of the index when performing this conversion.
columnstore 테이블을 rowstore로 변환합니다.Convert a columnstore table to a rowstore. CREATE COLUMNSTORE INDEX(Transact-SQL)CREATE COLUMNSTORE INDEX (Transact-SQL) 일반적으로 이 작업은 필요하지 않지만 이 변환을 수행해야 하는 경우가 있을 수 있습니다.Usually this is not necessary, but there can be times when you need to perform this conversion. 예제에서는 columnstore를 힙 또는 클러스터형 인덱스로 변환하는 방법을 보여 줍니다.Examples show how to convert a columnstore to a heap or clustered index.
Rowstore 테이블에 columnstore 인덱스를 만듭니다.Create a columnstore index on a rowstore table. CREATE COLUMNSTORE INDEX(Transact-SQL)CREATE COLUMNSTORE INDEX (Transact-SQL) Rowstore 테이블에는 하나의 columnstore 인덱스가 있을 수 있습니다.A rowstore table can have one columnstore index. SQL Server 2016SQL Server 2016부터 columnstore 인덱스에 필터링된 조건이 있을 수 있습니다.Beginning with SQL Server 2016SQL Server 2016, the columnstore index can have a filtered condition. 예제에서는 기본 구문을 보여 줍니다.Examples show the basic syntax.
운영 분석에 대한 고성능 인덱스를 만듭니다.Create performant indexes for operational analytics. Get started with Columnstore for real time operational analytics(실시간 운영 분석을 위한 Columnstore 시작)Get started with Columnstore for real time operational analytics OLTP 쿼리에서는 btree 인덱스를 사용하고 분석 쿼리에서는 columnstore 인덱스를 사용하도록 상호 보완적인 columnstore 및 btree 인덱스를 만드는 방법을 설명합니다.Describes how to create complementary columnstore and btree indexes so that OLTP queries use btree indexes and analytics queries use columnstore indexes.
데이터 웨어하우징용 고성능 columnstore 인덱스를 만듭니다.Create performant columnstore indexes for data warehousing. 데이터 웨어하우스용 Columnstore 인덱스Columnstore Indexes for Data Warehousing Columnstore 테이블에서 btree 인덱스를 사용하여 고성능 데이터 웨어하우징 쿼리를 만드는 방법을 설명합니다.Describes how to use btree indexes on columnstore tables to create performant data warehousing queries.
btree 인덱스를 사용하여 columnstore 테이블에서 기본 키 제약 조건을 적용합니다.Use a btree index to enforce a primary key constraint on a columnstore index. 데이터 웨어하우스용 Columnstore 인덱스Columnstore Indexes for Data Warehousing btree 및 columnstore 인덱스를 결합하여 columnstore 인덱스에서 기본 키 제약 조건을 적용하는 방법을 보여 줍니다.Shows how to combine btree and columnstore indexes to enforce primary key constraints on the columnstore index.
Columnstore 인덱스를 삭제합니다.Drop a columnstore index DROP INDEX(Transact-SQL)DROP INDEX (Transact-SQL) Columnstore 인덱스 삭제에서는 btree 인덱스에서 사용하는 표준 DROP INDEX 구문을 사용합니다.Dropping a columnstore index uses the standard DROP INDEX syntax that btree indexes use. 클러스터형 columnstore 인덱스를 삭제하면 columnstore 테이블이 힙으로 변환됩니다.Dropping a clustered columnstore index will convert the columnstore table to a heap.
Columnstore 인덱스에서 행을 삭제합니다.Delete a row from a columnstore index DELETE(Transact-SQL)DELETE (Transact-SQL) 행을 삭제하려면 DELETE(Transact-SQL) 를 사용합니다.Use DELETE (Transact-SQL) to delete a row.

columnstore 행: SQL ServerSQL Server 는 행을 논리적으로 삭제된 것으로 표시하지만, 인덱스가 다시 작성될 때까지는 행에 대한 물리적 저장소를 회수하지 않습니다.columnstore row: SQL ServerSQL Server marks the row as logically deleted but does not reclaim the physical storage for the row until the index is rebuilt.

deltastore 행: SQL ServerSQL Server 는 행을 논리적 및 물리적으로 삭제합니다.deltastore row: SQL ServerSQL Server logically and physically deletes the row.
Columnstore 인덱스의 행을 업데이트합니다.Update a row in the columnstore index UPDATE(Transact-SQL)UPDATE (Transact-SQL) 행을 삭제하려면 UPDATE(Transact-SQL) 를 사용합니다.Use UPDATE (Transact-SQL) to update a row.

columnstore 행: SQL ServerSQL Server 는 행을 논리적으로 삭제됨으로 표시한 다음 업데이트된 행을 deltastore에 삽입합니다.columnstore row: SQL ServerSQL Server marks the row as logically deleted, and then inserts the updated row into the deltastore.

deltastore 행: SQL ServerSQL Server 는 deltastore에 있는 행을 업데이트합니다.deltastore row: SQL ServerSQL Server updates the row in the deltastore.
데이터를 columnstore 인덱스로 로드합니다.Load data into a columnstore index Columnstore 인덱스 데이터 로드Columnstore Indexes Data Loading
deltastore의 모든 행을 강제로 columnstore로 이동합니다.Force all rows in the deltastore to go into the columnstore. ALTER INDEX(Transact-SQL) ... REBUILDALTER INDEX (Transact-SQL) ... REBUILD

Columnstore 인덱스 조각 모음Columnstore Indexes Defragmentation
REBUILD 옵션과 함께 ALTER INDEX를 사용하면 모든 행이 강제로 columnstore로 이동합니다.ALTER INDEX with the REBUILD option forces all rows to go into the columnstore.
Columnstore 인덱스를 조각 모음합니다.Defragment a columnstore index ALTER INDEX(Transact-SQL)ALTER INDEX (Transact-SQL) ALTER INDEX …ALTER INDEX … REORGANIZE는 columnstore 인덱스를 온라인으로 조각 모음합니다.REORGANIZE defragments columnstore indexes online.
테이블을 columnstore 인덱스와 병합합니다.Merge tables with columnstore indexes. MERGE(Transact-SQL)MERGE (Transact-SQL)

참고 항목See Also

Columnstore 인덱스 데이터 로드 Columnstore Indexes Data Loading
Columnstore 인덱스 버전형 기능 요약 Columnstore Indexes Versioned Feature Summary
Columnstore 인덱스 쿼리 성능 Columnstore Indexes Query Performance
Get started with Columnstore for real time operational analytics(실시간 운영 분석을 위한 Columnstore 시작) Get started with Columnstore for real time operational analytics
데이터 웨어하우스용 Columnstore 인덱스 Columnstore Indexes for Data Warehousing
Columnstore 인덱스 조각 모음Columnstore Indexes Defragmentation