Секционные таблицы помогите разобраться

stim24
Дата: 26.01.2009 08:02:12
Как я понял для создание секционной таблицы нужно
1)Функция секционирования (указываються точки деления таблицы на секции)
2)Схема секционирования (указываються какието файловые группы так и не понял что это такое)
3)Создание таблицы с использованием схемы секционирования. (ну тат просто создаем таблицу и указываем на схему)

Так вот хотел прояснить ...
1) Для чего делаем схему и указываем файловые группы? и что такое файловые группы
2) Если уже создана секционная таблица .. как добавить секцию?
3) У нас есть секционная таблица. когда делаем по ней запрос. MSSQL делает запрос только на секциях куда попадает условие? я правильно понимаю
tpg
Дата: 26.01.2009 08:16:22
М-дя... Про файловые группы - это круто!!!...

Почитайте сперва - http://www.sql.ru/articles/mssql/2005/073102PartitionedTablesAndIndexes.shtml
tpg
Дата: 26.01.2009 08:31:58
Ну, а по файловым группам, конечно, документация - ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.ru/udb9/html/39e00ebe-c9b7-4d53-90bd-15de2015fd34.htm

Если нет русского BOL и родной установлен в пути по-умолчанию, поменяйте в этой ссылке ru на en.
stim24
Дата: 26.01.2009 10:51:50
Почитал..
Как понял файловые группы создаються в свойстве БД там вкладка файловые группы создал указал в схеме (имя файловой группы) все создалось.
Но всеже не совсем пойму для чего нужны файловые группы.

И верно ли я понимаю пусть у нас секц. таблица разбитая на месяца. (секции поделены датами)
Я делаю запрос с условием, что мне выбрать счета за определенную дату.
То MSSQL будет обрабатывать только ту секцию в которую попадает данная дата?
А если я сделаю выборку по условию номер счета то он будет обрабатывать всю таблицу а не секции?
alexeyvg
Дата: 26.01.2009 11:17:03
stim24
Но всеже не совсем пойму для чего нужны файловые группы.
В основном для распределения базы на много дисков (рэйдов).

Или вот для секционирования. Если не бить по файлам, то зачем тогда вы хотите секционировать? Преподаватель задал? :-)

stim24
То MSSQL будет обрабатывать только ту секцию в которую попадает данная дата?
А если я сделаю выборку по условию номер счета то он будет обрабатывать всю таблицу а не секции?
В 2008-м - Да, Нет.
В 2005-м - Да, Да.
stim24
Дата: 27.01.2009 04:20:10
alexeyvg

Если не бить по файлам, то зачем тогда вы хотите секционировать?

Я просто полностью не совсем пойму как MSSQL работает.
Тоесть как я понимаю после ваших слов если мы делаем схему и указываем, что все в одной файловой группе.
Тогда запросы будут работать по всей таблице, а не по секциям? И не будет ни какой разницы (в увелечение скорости выборки), что таблица поделена на секции или нет?
tpg
Дата: 27.01.2009 06:54:12
М-дя... Не читали вы ни статью, ни документацию... :-\
Продолжаем разговор - Для чего нужно секционирование?
alexeyvg
Дата: 27.01.2009 11:03:47
stim24
Я просто полностью не совсем пойму как MSSQL работает.
Тоесть как я понимаю после ваших слов если мы делаем схему и указываем, что все в одной файловой группе.
Тогда запросы будут работать по всей таблице, а не по секциям? И не будет ни какой разницы (в увелечение скорости выборки), что таблица поделена на секции или нет?
Нужно сначала понять, как уже сказал tpg, зачем вам нужно секционирование.

Если на одном диске и в одном файле можно было-бы секционировать таблицу, то что мы от этого получили-бы, кроме дополнительных затрат сервера и соответственно уменьшения производительности?

Секционирование нужно главным образом для специфических операций с базой, для повышения производительности в специфических случаях, для ускорения некоторых видов обслуживания.

К примеру, вы можете на отдельной базе выполнить для секции счетов за 2007 год операции сложной загрузки данных со сложными расчётами, а потом за секунды заменить текущую секцию из рабочей базы на только что расчитанную.

Или другой вариант - вы можете делать бакап нескольких гигов из террабайтной таблицы, зная, что остальная часть таблицы не меняется.

Т.е. вам нужно не внедрять что-то из-за модного названия, а "проиграть" все сценарии использования секционирования, обязательно подсчитав конкретную выгоду от их использования. Прямо конкретную, в секундах, часах - какие преимущества получат ваши пользователи и какие преимущества получит ваша фирма, и стоит-ли тратить на это время, писать весь этот код.
yazy4nik
Дата: 23.08.2011 10:30:47
[quot alexeyvg]
stim24

К примеру, вы можете на отдельной базе выполнить для секции счетов за 2007 год операции сложной загрузки данных со сложными расчётами, а потом за секунды заменить текущую секцию из рабочей базы на только что расчитанную.


это как?
tpg
Дата: 23.08.2011 10:43:15
yazy4nik,

а вы слово "база" на слово "таблица" замените... и всё станет логично ;-)