What is a
database table partitioning?
Partitioning is
the database process where very large tables are divided into multiple smaller
parts. By splitting a large table into smaller, individual tables, queries that
access only a fraction of the data can run faster because there is less data to
scan.
The main of
goal of partitioning is to aid in maintenance of large tables and to reduce the
overall response time to read and load data for particular SQL operations.
There are two different
approaches we could use to accomplish table partitioning.
- · The first is to create a new partitioned table and then simply copy the data from your existing table into the new table and do a table rename.
- · The second approach is to partition an existing table by rebuilding or creating a clustered index on the table
Vertical
Partitioning on SQL Server tables
Vertical table partitioning is
mostly used to increase SQL Server performance especially in cases where a
query retrieves all columns from a table that contains a number of very wide
text or BLOB columns.
In this case to reduce access
times the BLOB columns can be split to its own table. Another example is to
restrict access to sensitive data e.g. passwords, salary information etc.
Vertical partitioning splits a
table into two or more tables containing different columns:
Horizontal
Partitioning on SQL Server tables
Horizontal partitioning divides
a table into multiple tables that contain the same number of columns, but fewer
rows. For example, if a table contains a large number of rows that represent
monthly reports it could be partitioned horizontally into tables by years, with
each table representing all monthly reports for a specific year. This way
queries requiring data for a specific year will only reference the appropriate
table. Tables should be partitioned in a way that queries reference as few
tables as possible.
Tables are
horizontally partitioned based on a column which will be used for partitioning and
the ranges associated to each partition. Partitioning column is usually a
datetime column but all data types that are valid for use as index columns can
be used as a partitioning column, except a timestamp column. The ntext, text,
image, xml, varchar(max), nvarchar(max), or varbinary(max), Microsoft .NET
Framework common language runtime (CLR) user-defined type, and alias data type
columns cannot be specified.
No comments:
Post a Comment