Report Portal

MS SQL Server Analysis Services 2008 - November CTP quick review

Link to source

As Microsoft released today November CTP 5 for SQL Server 2008 and this time there are quite a few changes in Analysis Services area. Documentation lists these SSAS changes in November CTP:

MOLAP Performance (FITS): New MOLAP-enabled write-back capabilities in SQL Server 2008 Analysis Services remove the need to query ROLAP partitions. This provides users with enhanced writeback scenarios from within analytical applications without sacrificing the traditional OLAP performance.

  • Resource Monitoring: This concept is similar to DMV found in the relational engine. Analysis Services DMV addresses immediate needs of DBAs to get answers to the questions like: Who is connected to my server? What are the active sessions and what commands/queries they are running? What CPU consumed by particular query/command? What are the objects being referenced by particular command?
  • MDX Query Optimizer - Block Computation: Block computations provide a significant improvement in processing performance, enabling users to increase the depth of their hierarchies and complexity of the computations.
  • Aggregation Design:  SQL Server 2008 drives broader analysis with enhanced analytical capabilities and with more complex computations and aggregations. The AS Aggregation Design improvement exposes Aggregation Design objects in SQL Server BI Dev Studio and SQL Server Management Studio and provides tools for users to better work with these aggregation designs. In addition, an advanced view in the new Aggregation Design tab of the cube editor provides the ability for an advanced user to view and manually edit individual aggregations within an aggregation design.
  • Analysis Services Cube Design:  New cube design tools help users streamline the development of the analysis infrastructure, enabling them to build solutions for optimized performance. The AS Cube Design improvement introduces a new Cube Wizard which helps users create better cubes in fewer steps.  The new wizard focuses on having the user answer a few questions to create leaner cubes that better targets their needs.  It also unblocks the previously difficult scenarios of creating a cube a cube based on a single, de-normalized table and creating a cube containing only linked dimensions.

 

Darren Gosbell already wrote about Aggregation Design improvements in his blog “SSAS 2008: New cube aggregations tab”.

Block computation is welcome MDX query performance improvement. I will test actual numbers for my database a bit latter when I’ll setup proper test environment. I am actually very optimistic about this change as I heard that almost everybody saw big improvement in MDX query performance.

New Analysis Services resource monitoring approach was already presented in the past webcasts but this time I run some tests to see how it works. As Microsoft described, concept is very similar to Dynamic Management Views (DMV) in SQL Server database. You simply write queries against tables, that returns result as rowset. Here are few queries that helps you monitor resources:

SELECT * FROM $system.DISCOVER_CONNECTIONS
SELECT * FROM $system.DISCOVER_MEMORYUSAGE
SELECT * FROM $system.DISCOVER_LOCKS
SELECT * FROM $system.DISCOVER_SESSIONS

I am not going to go here into the details on what these queries return, but you can guess a lot just from the table names. From the previous webcasts I got a feeling that Microsoft will have 4-5 of these special “DMV” tables. But while playing with analysis services instance that did not have any databases yet installed I found that there are 54 rowsets available for querying. You can get a list of available rowsets by executing following query in Analysis Services 2008:

SELECT table_schema, table_name
   FROM $system.dbschema_tables
 ORDER BY table_name

Here is result of this query from Analysis Services machine with no databases:

table_schema 

table_name

$SYSTEMDBSCHEMA_CATALOGS
$SYSTEMDBSCHEMA_COLUMNS
$SYSTEMDBSCHEMA_PROVIDER_TYPES
$SYSTEMDBSCHEMA_TABLES
$SYSTEMDISCOVER_COMMAND_OBJECTS
$SYSTEMDISCOVER_COMMANDS
$SYSTEMDISCOVER_CONNECTIONS
$SYSTEMDISCOVER_DB_CONNECTIONS
$SYSTEMDISCOVER_DIMENSION_STAT
$SYSTEMDISCOVER_ENUMERATORS
$SYSTEMDISCOVER_INSTANCES
$SYSTEMDISCOVER_JOBS
$SYSTEMDISCOVER_KEYWORDS
$SYSTEMDISCOVER_LITERALS
$SYSTEMDISCOVER_LOCKS
$SYSTEMDISCOVER_MASTER_KEY
$SYSTEMDISCOVER_MEMORYGRANT
$SYSTEMDISCOVER_MEMORYUSAGE
$SYSTEMDISCOVER_OBJECT_ACTIVITY
$SYSTEMDISCOVER_OBJECT_MEMORY_USAGE
$SYSTEMDISCOVER_PARTITION_DIMENSION_STAT
$SYSTEMDISCOVER_PARTITION_STAT
$SYSTEMDISCOVER_PERFORMANCE_COUNTERS
$SYSTEMDISCOVER_PROPERTIES
$SYSTEMDISCOVER_SCHEMA_ROWSETS
$SYSTEMDISCOVER_SESSIONS
$SYSTEMDISCOVER_TRACE_COLUMNS
$SYSTEMDISCOVER_TRACE_DEFINITION_PROVIDERINFO
$SYSTEMDISCOVER_TRACE_EVENT_CATEGORIES
$SYSTEMDISCOVER_TRACES
$SYSTEMDISCOVER_TRANSACTIONS
$SYSTEMDMSCHEMA_MINING_COLUMNS
$SYSTEMDMSCHEMA_MINING_FUNCTIONS
$SYSTEMDMSCHEMA_MINING_MODEL_CONTENT
$SYSTEMDMSCHEMA_MINING_MODEL_CONTENT_PMML
$SYSTEMDMSCHEMA_MINING_MODEL_XML
$SYSTEMDMSCHEMA_MINING_MODELS
$SYSTEMDMSCHEMA_MINING_SERVICE_PARAMETERS
$SYSTEMDMSCHEMA_MINING_SERVICES
$SYSTEMDMSCHEMA_MINING_STRUCTURE_COLUMNS
$SYSTEMDMSCHEMA_MINING_STRUCTURES
$SYSTEMMDSCHEMA_CUBES
$SYSTEMMDSCHEMA_DIMENSIONS
$SYSTEMMDSCHEMA_FUNCTIONS
$SYSTEMMDSCHEMA_HIERARCHIES
$SYSTEMMDSCHEMA_INPUT_DATASOURCES
$SYSTEMMDSCHEMA_KPIS
$SYSTEMMDSCHEMA_LEVELS
$SYSTEMMDSCHEMA_MEASUREGROUP_DIMENSIONS
$SYSTEMMDSCHEMA_MEASUREGROUPS
$SYSTEMMDSCHEMA_MEASURES
$SYSTEMMDSCHEMA_MEMBERS
$SYSTEMMDSCHEMA_PROPERTIES
$SYSTEMMDSCHEMA_SETS

Some of these rowsets gives you information about resources, others describes analysis services objects (measures, dimensions, cubes, etc.).  

Things got even more interesting after I deployed a few Analysis Services databases. Now the same query from $system.dbschema_tables returned all analysis services objects as rowsets available for querying. That is for example, you can now write a query, that will return a rowset with a list of Account dimension members:

SELECT * FROM [Adventure Works].[$Account]

There is a lot of information available through this  new rowsets, I just have to figure out know how to make it useful.

 

2007-2015 VidasSoft Systems Inc.