The second difference I have found once I’ve migrated a 2008 R2 solution is related to the string storage on the OLAP solutions. On previous versions, due the way the string attributes are managed and stored on the file system, there were a limit on the string storage, so when the size of the generated files were not able to be  bigger than 4Gb.To avoid that issue, a new way to store string attributes have been defined. To reflect that new feature on design time and so old versions can be compatible with Denali two new properties have been created:

  • CurrentStringStoresCompatiblityLevel. A read-only property so you can know the compatibility level used at the server side.
  • StringStoresCompatibilityLevel. A read-write property to define how the strings attributes will be treated. For the 2008 application I have converted the value is set to 1050, so the strings are managed in the old way, but if we want to use the new string limit we need to update that attribute to 1100, deploy the solution and run a full process.

To identify when those properties are located has not been an easy thing, but I’ve finally realized that if you google them you’ll find the first two entries related to the msdn library pointing to partition and dimension properties, after that you can go to the properties pane of the partition and dimension within your cube and you’ll find them.

To check what happen when changing the property I’ve processed a dimension that contains an attribute based on a varchar(500)  and I’ve processed it with both values, 1050 and 1100. On the pictures below you can easily see the differences. Once a full process have been completed I have checked the file system I have found a new set of file types named as KSSTOREIDX. Unfortunately the files cannot be read directly to fully understand the new structure.

StringStoresCompatibilityLevel = 1050 StringStoresCompatibilityLevel = 1100

Additional information can be found at MSDN about the StringStoresCompatibiliyLevel