创建并管理SQL Server Analysis Services分区(三)

日期: 2009-07-22 作者:Baya Dewald翻译:孙瑞 来源:TechTarget中国 英文

注意你可以把集合设计从一个分区拷贝到另一个分区。如果你对现有的集合设计满意的话,你可以把它分配到新创建的分区中去。   如果一个分区有500000行以上的估计行而你没有为它定义一个集合,那么BIDS将会提醒你可以创建集合来改善应用性能。   分区会降低处理度量组数据的时间,因为每个分区都只是负载部分事实表和视图。

记住在运行期间,SQL Server Analysis Services会先修改查询并定义分区,然后才会将它送到关系数据源。   Analysis Services送到SQL Server的查询同原先的查询有着较大的区别:   SELECT   [dbo_FactIntern……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

注意你可以把集合设计从一个分区拷贝到另一个分区。如果你对现有的集合设计满意的话,你可以把它分配到新创建的分区中去。

  如果一个分区有500000行以上的估计行而你没有为它定义一个集合,那么BIDS将会提醒你可以创建集合来改善应用性能。

  分区会降低处理度量组数据的时间,因为每个分区都只是负载部分事实表和视图。记住在运行期间,SQL Server Analysis Services会先修改查询并定义分区,然后才会将它送到关系数据源。

  Analysis Services送到SQL Server的查询同原先的查询有着较大的区别:

  SELECT
  [dbo_FactInternetSales].[dbo_FactInternetSalesSalesAmount0_0] AS [dbo_FactInternetSalesSalesAmount0_0],
  [dbo_FactInternetSales].[dbo_FactInternetSalesOrderQuantity0_1] AS [dbo_FactInternetSalesOrderQuantity0_1],
  [dbo_FactInternetSales].[dbo_FactInternetSalesExtendedAmount0_2] AS [dbo_FactInternetSalesExtendedAmount0_2],
  [dbo_FactInternetSales].[dbo_FactInternetSalesTaxAmt0_3] AS [dbo_FactInternetSalesTaxAmt0_3],
  [dbo_FactInternetSales].[dbo_FactInternetSalesFreight0_4] AS [dbo_FactInternetSalesFreight0_4],
  [dbo_FactInternetSales].[dbo_FactInternetSalesUnitPrice0_5] AS [dbo_FactInternetSalesUnitPrice0_5],
  [dbo_FactInternetSales].[dbo_FactInternetSalesTotalProductCost0_6] AS [dbo_FactInternetSalesTotalProductCost0_6],
  [dbo_FactInternetSales].[dbo_FactInternetSalesProductStandardCost0_7] AS [dbo_FactInternetSalesProductStandardCost0_7],
  [dbo_FactInternetSales].[dbo_FactInternetSales0_8] AS [dbo_FactInternetSales0_8],
  [dbo_FactInternetSales].[dbo_FactInternetSalesPromotionKey0_9] AS [dbo_FactInternetSalesPromotionKey0_9],
  [dbo_FactInternetSales].[dbo_FactInternetSalesSalesTerritoryKey0_10] AS [dbo_FactInternetSalesSalesTerritoryKey0_10],
  [dbo_FactInternetSales].[dbo_FactInternetSalesProductKey0_11] AS [dbo_FactInternetSalesProductKey0_11],
  [dbo_FactInternetSales].[dbo_FactInternetSalesCustomerKey0_12] AS [dbo_FactInternetSalesCustomerKey0_12],
  [dbo_FactInternetSales].[dbo_FactInternetSalesCurrencyKey0_13] AS [dbo_FactInternetSalesCurrencyKey0_13],
  [dbo_FactInternetSales].[dbo_FactInternetSalesOrderDateKey0_14] AS [dbo_FactInternetSalesOrderDateKey0_14],
  [dbo_FactInternetSales].[dbo_FactInternetSalesShipDateKey0_15] AS [dbo_FactInternetSalesShipDateKey0_15],
  [dbo_FactInternetSales].[dbo_FactInternetSalesDueDateKey0_16] AS [dbo_FactInternetSalesDueDateKey0_16]
  FROM
  (
  SELECT
  [SalesAmount] AS [dbo_FactInternetSalesSalesAmount0_0],
  [OrderQuantity] AS [dbo_FactInternetSalesOrderQuantity0_1],
  [ExtendedAmount] AS [dbo_FactInternetSalesExtendedAmount0_2],
  [TaxAmt] AS [dbo_FactInternetSalesTaxAmt0_3],
  [Freight] AS [dbo_FactInternetSalesFreight0_4],
  [UnitPrice] AS [dbo_FactInternetSalesUnitPrice0_5],
  [TotalProductCost] AS [dbo_FactInternetSalesTotalProductCost0_6],
  [ProductStandardCost] AS [dbo_FactInternetSalesProductStandardCost0_7],
  1 AS [dbo_FactInternetSales0_8],
  [PromotionKey] AS [dbo_FactInternetSalesPromotionKey0_9],
  [SalesTerritoryKey] AS [dbo_FactInternetSalesSalesTerritoryKey0_10],
  [ProductKey] AS [dbo_FactInternetSalesProductKey0_11],
  [CustomerKey] AS [dbo_FactInternetSalesCustomerKey0_12],
  [CurrencyKey] AS [dbo_FactInternetSalesCurrencyKey0_13],
  [OrderDateKey] AS [dbo_FactInternetSalesOrderDateKey0_14],
  [ShipDateKey] AS [dbo_FactInternetSalesShipDateKey0_15],
  [DueDateKey] AS [dbo_FactInternetSalesDueDateKey0_16]
  FROM
  (
  SELECT
  [dbo].[FactInternetSales].[ProductKey],
  [dbo].[FactInternetSales].[OrderDateKey],
  [dbo].[FactInternetSales].[DueDateKey],
  [dbo].[FactInternetSales].[ShipDateKey],
  [dbo].[FactInternetSales].[CustomerKey],
  [dbo].[FactInternetSales].[PromotionKey],
  [dbo].[FactInternetSales].[CurrencyKey],
  [dbo].[FactInternetSales].[SalesTerritoryKey],
  [dbo].[FactInternetSales].[SalesOrderNumber],
  [dbo].[FactInternetSales].[SalesOrderLineNumber],
  [dbo].[FactInternetSales].[RevisionNumber],
  [dbo].[FactInternetSales].[OrderQuantity],
  [dbo].[FactInternetSales].[UnitPrice],
  [dbo].[FactInternetSales].[ExtendedAmount],
  [dbo].[FactInternetSales].[UnitPriceDiscountPct],
  [dbo].[FactInternetSales].[DiscountAmount],
  [dbo].[FactInternetSales].[ProductStandardCost],
  [dbo].[FactInternetSales].[TotalProductCost],
  [dbo].[FactInternetSales].[SalesAmount],
  [dbo].[FactInternetSales].[TaxAmt],
  [dbo].[FactInternetSales].[Freight],
  [dbo].[FactInternetSales].[CarrierTrackingNumber],
  [dbo].[FactInternetSales].[CustomerPONumber]
  FROM [dbo].[FactInternetSales]
  WHERE OrderDateKey <= '20011231'
  ) AS [FactInternetSales]
  )
  AS [dbo_FactInternetSales]
  在进行分区处理时,为什么你要去关心什么样的查询被送到SQL Server中?因为在常规SQL语句中的查询提示或设置选项换到分区中可能会无效。

  例如:BIDS会允许我们在分区查询开始时附加SET NOCOUNT ON声明。如果我们添加此选项,SQL Server Analysis Services会报错并中止进程。

  你可以自定义分区处理模式,它定义了集合是否在分区处理中创建,还是在完成分区处理之后创建。

  最后,你可以修改存储位置属性来决定数据存储的位置。这个属性在硬盘存储空间不足的情况下会发挥作用的。

作者

Baya Dewald
Baya Dewald

Baya Dewald,数据库咨询师,主要帮助客户用SQL Server和Analysis Services开发高可用的和升级应用软件。在他的职业生涯中,他负责过管理过数据库管理员团队等工作。Baya主要专攻领域有:性能调优、复制和数据仓储。你可以通过baya@bayasqlconsulting.com跟他联系。

翻译

孙瑞
孙瑞

相关推荐