Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Проблема с партициями вместо чтения по ОДНОЙ партиции партиции происходит чтение по двум

$
0
0
Проблема с партициями вместо чтения по ОДНОЙ партиции партиции происходит чтение по двум
Писал на стек НЕ помогли http://stackoverflow.com/questions/44079501/sql-server-2104-2016-instead-of-reading-on-one-partitions-reading-on-two-partit

--партиционирование, тут 0 будет включен в одну партицию, а записи больше в другую, 1
    CREATE PARTITION FUNCTION PF_CreditRequest(bit) 
    AS RANGE LEFT FOR VALUES(0); 

    --схема
    CREATE PARTITION SCHEME PS_CreditRequest
    AS PARTITION PF_CreditRequest
    ALL TO ([PRIMARY]); --Да одна файловая группа, пока так удобно


    CREATE TABLE [dbo].[CreditRequest]( 
            [Id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY NONCLUSTERED, 
            [IsDeleted] [bit] NOT NULL CONSTRAINT [DF_CreditRequest_IsDeleted]  DEFAULT ((0)), 
            [FIO] [nvarchar](100) )

    CREATE CLUSTERED INDEX [CI_CreditRequest] ON [dbo].[CreditRequest] 
    ( 
            [IsDeleted] ASC, --порядок правильный первым идет ПО чему партиционируем
            [Id] ASC

    )
    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
    ON [PS_CreditRequest]([IsDeleted]) --разделяем по битовому полю IsDeleted

--заливаем тестовых данных
    insert into CreditRequest ([IsDeleted],  [FIO]) values
    (1,'Nike'), (0, 'Jane'), (1, 'Patrik')

--тут все ок
    SELECT  $PARTITION.[PF_CreditRequest](IsDeleted), * FROM  CreditRequest 
    WHERE IsDeleted = 0 

    --тут проблема вместо чтения по ОДНОЙ партиции партиции происходит чтение по двум
    SELECT  $PARTITION.[PF_CreditRequest](IsDeleted),  * FROM  CreditRequest
    WHERE IsDeleted = 1

Viewing all articles
Browse latest Browse all 7251

Trending Articles