Разделение таблицы в запросе sybase-select

Моя главная забота:

У меня есть существующая таблица с огромными данными. Она имеет кластерный индекс.
Мой процесс C ++ имеет список многих ключей, с помощью которых он проверяет, существует ли ключ в таблице,
и если да, то он проверит строку в таблице и новая строка похожи. если есть изменение, новая строка обновляется в таблице.
В целом изменений будет меньше. Но его огромные данные в таблице.
S это означает, что будет много запросов на выборку, но не так много запросов на обновление.

Чего бы я хотел достичь:

Я только что прочитал о разбиении таблицы в sybase Вот.
Я просто хотел знать, будет ли это полезно для меня, так как я читал в статье, где упоминается только о запросах на вставку. Но как я могу улучшить производительность моего запроса?

Может ли кто-нибудь предложить, что я должен искать в этом случае?

0

Решение

Да, это улучшит производительность вашего запроса (чтения), если ваш запрос основан на определенных ключах раздела. Индексы также могут быть разделены и понятно, что меньший индекс будет означать более высокую производительность чтения.

Например, если у вас был запрос типа select * from contacts where lastName = 'Smith' и вы разбили индекс вашей таблицы на основе первой буквы lastName, а затем серверу нужно выполнить поиск только в одном разделе «S», чтобы получить его результаты.

Имейте в виду, что разделение ваших данных может быть затруднено, если у вас много разных профилей запросов. Запросы, которые не включают ключ раздела индекса (например, lastName), такой как select * from staff where created > [some_date] Затем придется нажать на каждый раздел индекса, чтобы получить его результирующий набор.

Никто не может сказать вам, что вы должны / не должны делать, так как это зависит от конкретного приложения, и вам придется провести собственный анализ. Прежде чем вмешиваться в разделы, я советую убедиться, что у вас есть правильные индексы, они попадают под ваши запросы (т. Е. Нет сканирования таблиц), и ваш сервер имеет соответствующие ресурсы (т. Е. Имеет достаточно быстрый диск и оперативную память), и вы настроили кеш вашего сервера под ваши запросы.

0

Другие решения


По вопросам рекламы [email protected]