Разделы SQL, анализатор запросов и производительность - PullRequest
3 голосов
/ 17 марта 2011

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

Например, если у меня есть раздел для записей между 2005 - 2009 и другой для записей 2010 - текущий, и я выбираюдля всех записей = 2010 SQL будет игнорировать первый раздел из-за функции разделения.Если я буду искать записи между 2008-2010 гг., SQL будет использовать оба раздела, но делать это параллельно.Правильно ли предположить, что, если я запрашиваю ВСЕ записи без предиката, SQL будет (в меру своих возможностей) использовать все разделы параллельно?

Когда разделы таблицы вызывают проблемы с производительностью?

1 Ответ

3 голосов
/ 17 марта 2011

Все ваши очки верны.Параллелизм не имеет прямого отношения к разделению, хотя он с большей вероятностью нарушит работу по выравниванию разделов.

Что касается последнего вопроса, я не знаю реальных случаев, когда разделение приведет к снижению производительности.Если из-за параллелизма возникают проблемы с производительностью, проблема связана с parallelism, а не partitioning - повторяю, они не связаны напрямую. Обычные проблемы с неправильно распараллеленными запросами будут возникать в равной степени как с разделением, так и без него, и применяются обычные методы его устранения.

Связанное чтение:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...