/ / Zlúčiť dve oddiely databázovej tabuľky podľa ich čísla oddielu - sql-server, sql-server-2008, tsql

Zlúčiť dve oddiely databázovej tabuľky podľa ich rozdelenia - sql-server, sql-server-2008, tsql

Vytvoril som štyri oddiely v SQL Server pomocou nasledujúcich funkcií.

CREATE PARTITION FUNCTION fnYearsRT(DateTime)
AS RANGE RIGHT FOR VALUES
("01/01/2005", "01/01/2006", "01/01/2007", "01/01/2008");

CREATE PARTITION SCHEME date_partscheme
AS PARTITION fnYearsRT
TO (Filegroup1, Filegroup2, Filegroup3, Filegroup4,Filegroup5)

CREATE TABLE Sales.ReturnsArchive
(
ReturnID  int  IDENTITY NOT NULL,
ProductID  int  NOT NULL,
CustomerID  int  NOT NULL,
ReturnDate  datetime  NOT NULL,
ReturnReason  char(20)  NULL
)
ON date_partscheme (ReturnDate)

Po vložení údajov mám nasledujúce štatistiky

Partition   COUNT
2       5151
3       19353
4       51237
5       45576

Chcem zlúčiť oddiel 2 a 3, ale nedokážem rozhodnúť, aký rozsah by som mal dať v funkcii zlúčenia.

odpovede:

2 pre odpoveď č. 1

V skutočnosti máte 5 oddielov, nie 4, prvý sa zdá byť prázdny. Ak chcete zlúčiť oddiel 2 a 3, použite nasledujúci kód:

ALTER PARTITION FUNCTION
MERGE RANGE("01/01/2006")

To vám poskytne nasledujúce rozsahy:

  1. ~ do "31/12/2004"
  2. "01/01/2005" až "31/12/2006"
  3. "01/01/2007" až "31/12/2007"
  4. "01/01/2008" do ~