Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 数据仓库中的列存储_Sql Server_Data Warehouse_Columnstore - Fatal编程技术网

Sql server 数据仓库中的列存储

Sql server 数据仓库中的列存储,sql-server,data-warehouse,columnstore,Sql Server,Data Warehouse,Columnstore,我有一个关于数据仓库和面向列的数据库的问题。在我的项目中,该公司使用visual studio SQL server中的仓库解决方案,在查询大量数据的复杂问题时,他们的性能有问题。我想尝试用基于列的数据库替换数据库。我知道您可以将中的面向行的数据库“转换”为更基于列的数据库,或者使用开源数据库,如Vertica或Sybase IQ,我只是想知道它如何适合仓库?你是否必须在仓库中使用星型连接模式,或者你可以使用列式方法来代替,我意识到这是一个愚蠢的问题,但我只是想在开始探索不同的数据库和解决方案之

我有一个关于数据仓库和面向列的数据库的问题。在我的项目中,该公司使用visual studio SQL server中的仓库解决方案,在查询大量数据的复杂问题时,他们的性能有问题。我想尝试用基于列的数据库替换数据库。我知道您可以将中的面向行的数据库“转换”为更基于列的数据库,或者使用开源数据库,如Vertica或Sybase IQ,我只是想知道它如何适合仓库?你是否必须在仓库中使用星型连接模式,或者你可以使用列式方法来代替,我意识到这是一个愚蠢的问题,但我只是想在开始探索不同的数据库和解决方案之前理解它。 我知道SQLServer2012有一个列存储,但我也想尝试其他开源数据库

提前谢谢

您是否必须在仓库中使用星型连接模式,或者可以使用列式方法

星形联接模式由数据仓库的表定义组成。星型模式和类似模式以查询性能换取查询灵活性。通常,在数据仓库中,查询灵活性比查询性能更重要

基于您在注释中链接到的,面向列的数据库引擎按列顺序存储实际的数据库字节,而不是关系数据库的传统行顺序

正如文章所说,这可以提高磁盘访问性能

星型模式是定义表的方式。面向列的数据库引擎关注如何将数据库信息写入磁盘。这两个概念彼此无关,只是它们都适用于数据仓库


保持当前的数据仓库模式,并查看面向列的数据库引擎是否会提高查询性能

性能问题有多严重?数据仓库查询通常以分钟和小时为单位,而不是以秒为单位。最有趣的查询需要数据库遍历很多行。我不确定到底有多少行,只是这是一个问题,他们想看看一个面向列的数据库会有什么不同。我只是有点困惑,因为我刚上了一门数据仓库课程,学习了使用星型连接模式,你能用一个面向列的数据库来代替它吗?什么是面向列的数据库?你能指出维基百科的一篇文章吗?好的,如果我理解正确的话,你说的不是改变表结构,而是数据库引擎如何实际存储数据库字节。当然,看看面向列的数据库引擎是否有改进。现在开始有意义了:)非常感谢Gilbert!我相信我以后会有成千上万的问题,但现在看起来更清楚了!有一件事-更改DBMS引擎比看起来要困难得多,因为每个系统都以不同的方式实现SQL,并且弄清楚双层兼容性等可能非常具有挑战性。最好让一个好的DBA对查询进行一些性能分析,并找出需要改进的地方,使用更好的结构(索引等)或硬件(磁盘I/O通常是罪魁祸首)。