Field engineer on Partition Processing dimensions in SSAS.
http://blogs.msdn.com/b/sqlcat/archive/2007/03/05/ssas-partition-slicing.aspx
Troubleshooting partition queries.
Field engineer on Partition Processing dimensions in SSAS.
http://blogs.msdn.com/b/sqlcat/archive/2007/03/05/ssas-partition-slicing.aspx
Troubleshooting partition queries.
http://msdn.microsoft.com/en-us/library/ms180767.aspx
In planning the partition scheme, you must decide what filegroup or filegroups that you want to put your partitions on. The primary reason for placing your partitions on separate filegroups is to make sure that you can independently perform backup operations on partitions. This is because you can perform backups on individual filegroups. For more information, see Backing Up and Restoring Databases in SQL Server.
Good overview of steps for a database on two filegroups followed by a partition that uses the two file groups for the two partitions and creation of index.
Partitioning enhancements for SQL Server 2008 around the allocation of threads to active partitions in a query.
Note that this makes it all the more important to allocate partitions to filegroups that are spread across many disk spindles, allowing the query on a given partition to be as efficient as possible.
But wait, there’s another improvement to partition query behavior in SQL Server 2008. SQL Server 2005 only allows lock escalation to the table level. Let’s say your query eliminates 75% of a table’s partitions, but scans all of the remaining partitions (1/4 of the table). If SQL Server decides to escalate the lock, all other queries will be locked out even if they are querying completely different partitions. SQL Server 2008 provides a table option to override this default behavior. Note that the default is still to escalate to table locks (at least for now) so this option will need to be changed to take advantage of partition-level lock escalation. Find out more about this, like I did, on über blogger Paul Randall’s post.
http://msdn.microsoft.com/en-us/library/cc280449.aspx
Partitions have compression settings.
http://www.codeproject.com/Articles/43629/Top-10-steps-to-optimize-data-access-in-SQL-Server
Use the following SQL command to create a file group:
ALTER DATABASE OrderDB ADD FILEGROUP [1999] ALTER DATABASE OrderDB ADD FILE (NAME = N'1999', FILENAME = N'C:\OrderDB\1999.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB) TO FILEGROUP [1999] http://www.simple-talk.com/sql/database-administration/partitioned-tables-in-sql-server-2005/ Adding and removing partitions.
If the index contains the partitioning column then the index is referred to as being ‘aligned’ with the table.
If the index uses the same partitioning scheme as the table and is in the same filegroup then the index must be aligned with the table.
For a non-clustered non-unique index the partitioning column can be included to align the index rather than being indexed.
I think it is best to always explicitly include the partitioning column in your indexes.
Although the partitioning column must be a single column, it does not need to be numeric and it can be calculated so that the range can include multiple columns. For instance it is common to partition on datetime data by month. This will work well, because that data is usually in a single column, but what do you do if you have data for multiple companies and you also want to partition by company? For this you could use a computed column for the partitioning column. This will create a computed column using the ‘company id’ and ‘order month’ which is then used for the partitions. It will partition three companies for the first three months of 2007.
The computed column must be ‘persisted’ to form the partitioning column.
A common requirement is to partition by month. This means that new month partitions need to be added and possibly old data partitions removed. I will describe the process for the addition of a new partition for later data, to remove an old partition the process is the same except that you swap out two partitions, merge the range and swap in a single table.
We create a partitioned table for data by OrderDate month
This will give four partitions…
Therefore the data will be split intopartitions by month, and we insert some test data: