# MS-SQL COLUMNSTORE 效能測試
## 測試環境
* SQL 2022 ( on Linux Docker )
* 資料筆數
30,947,409 筆
* 資料欄位結構
```SQL
CREATE TABLE [dbo].[DemoTable](
[Id] [bigint] NOT NULL,
[ProduceCode] [varchar](8) NULL,
[Fac_No] [char](8) NOT NULL,
[AppType] [varchar](4) NULL,
[DType] [varchar](6) NULL,
[CodeNo] [varchar](6) NULL,
[AppTime] [char](7) NULL,
[app_qty] [decimal](18, 6) NULL,
[Fac_Name] [varchar](300) NULL,
[ProduceName] [nvarchar](200) NULL,
[CodeName] [varchar](200) NULL,
[Pd_qty_mMax] [decimal](18, 6) NULL,
[Pd_qty_mAvg] [decimal](18, 6) NULL
)
```
## 實體磁碟空間佔用比較
| Row Base | Column Base | 空間節省 |
|---:| ---:| ---:|
| 4815 MB | 340 MB | 92% |
## 查詢效能比較
* 測試語法
```SQL
select fac_no , count(*) 資料筆數 , AVG(app_qty) 平均值 , STDEVP(app_qty) 標準偏差
from DemoTable
group by fac_no
```
* 效能比較
| 項目 | Row Base | Column Base | 效能提升 |
|:---:| ---:|---:|---:|
| CPU | 27593 | 7122 | 74% |
| Disk Reads | 602445 | 29885 | 95% |
## 網路參考資料
* [資料行存放區索引](https://learn.microsoft.com/zh-tw/sql/relational-databases/indexes/columnstore-indexes-overview?view=sql-server-ver16)