# 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)