Labels

admin (1) aix (1) alert (1) always-on (2) Architecture (1) aws (3) Azure (1) backup (3) BI-DWH (10) Binary (3) Boolean (1) C# (1) cache (1) casting (3) cdc (1) certificate (1) checks (1) cloud (3) cluster (1) cmd (7) collation (1) columns (1) compilation (1) configurations (7) Connection-String (2) connections (6) constraint (6) copypaste (2) cpu (2) csv (3) CTE (1) data-types (1) datetime (23) db (547) DB2 (1) deadlock (2) Denali (7) device (6) dotNet (5) dynamicSQL (11) email (5) encoding (1) encryption (4) errors (124) excel (1) ExecutionPlan (10) extended events (1) files (7) FIPS (1) foreign key (1) fragmentation (1) functions (1) GCP (2) gMSA (2) google (2) HADR (1) hashing (3) in-memory (1) index (3) indexedViews (2) insert (3) install (10) IO (1) isql (6) javascript (1) jobs (11) join (2) LDAP (2) LinkedServers (8) Linux (15) log (6) login (1) maintenance (3) mariadb (1) memory (4) merge (3) monitoring (4) MSA (2) mssql (444) mssql2005 (5) mssql2008R2 (20) mssql2012 (2) mysql (36) MySQL Shell (5) network (1) NoSQL (1) null (2) numeric (9) object-oriented (1) offline (1) openssl (1) Operating System (4) oracle (7) ORDBMS (1) ordering (2) Outer Apply (1) Outlook (1) page (1) parameters (2) partition (1) password (1) Performance (103) permissions (10) pivot (3) PLE (1) port (4) PostgreSQL (14) profiler (1) RDS (3) read (1) Replication (12) restore (4) root (1) RPO (1) RTO (1) SAP ASE (48) SAP RS (20) SCC (4) scema (1) script (8) security (10) segment (1) server (1) service broker (2) services (4) settings (75) SQL (74) SSAS (1) SSIS (19) SSL (8) SSMS (4) SSRS (6) storage (1) String (35) sybase (57) telnet (2) tempdb (1) Theory (2) tips (120) tools (3) training (1) transaction (6) trigger (2) Tuple (2) TVP (1) unix (8) users (3) vb.net (4) versioning (1) windows (14) xml (10) XSD (1) zip (1)

Create Partition Scheme

-- 0. create filegroup and file - if new filegroup/file are required
ALTER DATABASE GlobalSales ADD FILEGROUP PartitionFG

ALTER DATABASE GlobalSales ADD FILE
(
NAME = N'BlaBla' ,
FILENAME = N'C:\FolderA\FolderB\BlaBla.ndf'
)
TO FILEGROUP PartitionFG

-- 1. create partition function
CREATE PARTITION FUNCTION pfMonPartition (datetime)
AS RANGE RIGHT FOR VALUES ( '1 jan 2009', '1 feb 2009', '1 mar 2009')

--2. create partition scheme
CREATE PARTITION SCHEME SalesPartitionScheme
AS PARTITION pfMonthlyPartition
TO ( [PRIMARY], [PRIMARY], [PartitionFG2]) -- to FileGroups


------------------------------
-- new table
------------------------------
-- 3. create table on the scheme using specific column as a key
CREATE TABLE dbo.[Sales](
[SalesID] [int] NOT NULL,
.........
[DateOfSale] [datetime] NOT NULL
) ON [SalesPartitionScheme](DateOfSale)


------------------------------
------------------------------
-- 3. drop indexes and constraints on the key column
DROP INDEX [IX_Sales_DateOfSale] ON [dbo].[Sales] WITH ( ONLINE = OFF )
GO
ALTER TABLE [dbo].[Sales] DROP CONSTRAINT [PK_Sales]
GO

-- 4. re-create the indexes and the constraints of the key column on the scheme
CREATE CLUSTERED INDEX [IX_Sales_DateOfSale] ON [dbo].[Sales]
(
[DateOfSale] ASC
)WITH ( SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = OFF)
ON [SalesPartitionScheme]([DateOfSale])
GO

ALTER TABLE [dbo].[Sales] ADD  CONSTRAINT [PK_Sales] PRIMARY KEY NONCLUSTERED
(
[SalesOrderID] ASC,
[DateOfSale] DESC
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON SalesPartitionScheme([DateOfSale])

No comments:

Post a Comment