我在数据仓库中工作,该数据仓库有一个非常大的事务数据表(数亿行)。用户想要切断数据的某些常见方式(仅查看某些交易类型,仅查看某些供应商,一次只能查看一个月等),我正在尝试确定从中执行此操作的最佳方法。绩效观点。
数据是静态的,每月加载一次。所以,我不必处理不断变化的数据。
我应该创建仅包含所需记录的视图吗?或者,我应该创建一个表并为每个用例加载数据吗?
基本上,我认为我的问题是:如果我有一个大的静态表,我应该编写一个只过滤我想要的记录的视图,然后查询该视图吗?或者,我应该创建一个表,只从主表中加载我想要的记录,然后查询表吗?
我看到很多关于“视图与查询”的讨论,但我真正要问的是“查询视图与查询表。”
答案 0 :(得分:0)
当我面对ASYNC_NETWORK_IO等待类型时,我也不得不通过SSIS包将8600多万行从事务表传输到我的数据仓库,所以最终我在SSIS中修改了我的查询以逐批获取事务表中的记录。插入我的数据仓库。 您也可以尝试使用过滤条件的视图,但无论如何它将从基表中查找,因此我按批次使用获取记录。