Секционированные таблицы

Devil_FoX
Дата: 31.01.2013 13:11:32
Всем добрый день.
Изучаю секционированные таблицы по руководству и голова уже квадратная http://www.sql.ru/articles/mssql/200...dexes.shtml#58

вот примерно что я делаю:
create partition function test_sect_fn(Datetime) as
range left for values ( '20091231 23:59:59.997',
                        '20121231 23:59:59.997',
                        '20141231 23:59:59.997')


create partition Scheme [test_sect_scheme] as -- файловая група одна
partition dsa_test_sect_fn
    all to ([PRIMARY])


create table dbo.test_sect -- ограничения не ставлю как в примере
    (id int not null,
    [date] datetime not null)
        on test_sect_scheme (date)


insert into dbo.test_sect
select
    id,
    date
from dbo.lines



В итоге получается одна таблица dbo.test_sect.
1. Поиск данных по этой таблице уже будет проводится параллельно по 3-м секциям как указанно в функции?

План выполнения при выборке данных по всей таблице указывает один "Просмотр строк таблицы" (100%) и один "Select" (0%)
select
*
from dbo.test_sect

2. Как удостоверится что таблица секционирована?
3. Где именно можно увидеть все функции partition? не нашёл их в обозревателе объектов.
Гость333
Дата: 31.01.2013 13:36:11
Devil_FoX
http://www.sql.ru/articles/mssql/200...dexes.shtml#58

Информация
Ошибка 404: Запрошенный URL не найден на сервере.
Shakill
Дата: 31.01.2013 13:43:57
Devil_FoX
В итоге получается одна таблица dbo.test_sect.
1. Поиск данных по этой таблице уже будет проводится параллельно по 3-м секциям как указанно в функции?
в какой функции указано, что поиск будет проводиться параллельно?
Devil_FoX
План выполнения при выборке данных по всей таблице указывает один "Просмотр строк таблицы" (100%) и один "Select" (0%)
select
*
from dbo.test_sect

2. Как удостоверится что таблица секционирована?
надо посмотреть в плане в свойства "Просмотра строк таблицы" и увидеть сведения о секционировании, например
Devil_FoX
3. Где именно можно увидеть все функции partition? не нашёл их в обозревателе объектов.
вы о чем?
Devil_FoX
Дата: 31.01.2013 14:07:30
Shakill, функция create partition function test_sect_fn(Datetime) её я не могу найти в обозревателе объектов, она делит на секции таблицу

точная ссылка на ресурс по которому делаю
http://www.sql.ru/articles/mssql/2005/073102partitionedtablesandindexes.shtml#58

во вложении скрин с планом выполнения - не вижу где указано что таблица отрабатывает одновременно три секции, только утверждение что она секционированная.
Glory
Дата: 31.01.2013 14:10:18
Devil_FoX
не вижу где указано что таблица отрабатывает одновременно три секции

А где сказано, что секции должны обрабатываться одновременно ?
Гость333
Дата: 31.01.2013 14:12:09
Devil_FoX
1. Поиск данных по этой таблице уже будет проводится параллельно по 3-м секциям как указанно в функции?

В вашем примере создаётся 4 секции, а не 3.
Если на прямой линии поставить три точки, сколько получится интервалов?
Также смотрите результаты запроса:
select * from sys.partitions where object_id = object_id('dbo.test_sect')
Обратите внимание на столбец partition_number.

Devil_FoX
2. Как удостоверится что таблица секционирована?

Ну, например,
sp_help 'dbo.test_sect'
В выведенных результатах ищите Data_located_on_filegroup.

Devil_FoX
3. Где именно можно увидеть все функции partition? не нашёл их в обозревателе объектов.

Раскрываете вашу БД, ищете пункт Storage, в нём — Partition Functions. Как это называется в "обозревателе объектов", не знаю.
Гость333
Дата: 31.01.2013 14:21:21
Devil_FoX
во вложении скрин с планом выполнения - не вижу где указано что таблица отрабатывает одновременно три секции, только утверждение что она секционированная.

Вообще интересно, в SQL Server 2005 перебор секций отображается в плане запроса:
set showplan_text on
go
select *
from dbo.test_sect
go
set showplan_text off
go

  |--Nested Loops(Inner Join, OUTER REFERENCES:([PtnIds1004]) PARTITION ID:([PtnIds1004]))
|--Constant Scan(VALUES: (((1)),((2)),((3)),((4))))
|--Table Scan(OBJECT:([t].[dbo].[test_sect]))

В SQL Server 2008 — не отображается:
  |--Table Scan(OBJECT:([t].[dbo].[test_sect]))

Картинка плана запроса в 2005 выглядит так:
Гавриленко Сергей Алексеевич
Дата: 31.01.2013 14:26:11
В пропертях все есть в 2008.
Devil_FoX
Дата: 31.01.2013 14:34:18
Glory
А где сказано, что секции должны обрабатываться одновременно ?


Со статьи я понял что секционирование ускоряет вывод информации с таблицы, распаралеливая поиск по таблице.
Я хочу ускорить вывод информации с таблицы где более 300 млр. строк и каждый день вливается новая информация.
индексы помогают с таким объёмом, но хочется ещё быстрее обработку.

У меня SQL Server 2008
Devil_FoX
Дата: 31.01.2013 14:35:31
Гавриленко Сергей Алексеевич,
Можете уточнить кодом?