2016-03-02 2 views
1

Мы используем базу данных Azure SQL, в настоящее время с S3 Tier, и у нас есть проблема с одной из наших служб, которая толкает данные в базу данных. Это называется очень часто, и большую часть времени наш DTU составляет более 95%. Мы уже оптимизируем то, что можем, но в основном это слишком много удалений БД. Мы работаем над другой оптимизацией, кэшированием и т. Д.Azure SQL DB - Управление ресурсами

Проблема заключается в том, что эта БД используется другим нашим приложением и из-за того, что DTU используется другой службой, у нас есть проблемы с производительностью.

Я думал, если есть способ, когда мы можем каким-то образом установить максимальное ограничение для одного пользователя SQL для DTU? например 30%. Я пытался это сделать, но не мог найти ничего, связанного с этой темой. Большое спасибо за ответы или предложения

ответ

0

В настоящее время в базе данных SQL нет способа ограничить ресурсы для каждого запроса/клиента. Какое измерение ресурсов вы максимизируете (процессор, чтение, запись)? Если вы не можете больше оптимизировать, вам, возможно, придется укусить пулю и увеличить ее. Если вы привязаны к IO, вам поможет переход на P1. Если вы связаны с CPU, вам, возможно, придется перейти на P2.

+0

ok, tx много для вас ответов. –

0

% всегда зависит от уровня S2 db. Если вы находитесь на уровне 95, это означает, что вы используете 95% уровня db S2 для вашего использования DTU. В этом случае вы близки к 100%, поэтому вам, вероятно, скоро понадобится более высокий уровень, чем S2. Вы используете S3, поэтому у вас есть правильный уровень.

azure-sql-database-introduces-new-near-real-time-performance-metrics

Например, если ваше потребление ДТУ показывает значение 80%, это указывает на то, потребляет DTU в размере 80% от лимита база данных S2 будет иметь. Если вы видите значения более 100% в этом представлении , это означает, что вам нужен уровень производительности, превышающий S2.

В качестве примера предположим, что вы видите процентное значение 300%. Этот говорит вам, что вы используете в три раза больше ресурсов, чем , доступных на S2. Для определения разумного начального размера сравните DTU, доступные в S2 (50 DTU) со следующими более высокими размерами (P1 = 100 DTU или 200% S2, P2 = 200 DTU или 400% S2). Поскольку вы находятся на уровне 300% от S2, вы хотели бы начать с P2 и перепроверить.

На основе использования процентов ДТА вы можете определить, является ли ваша база данных могут подходит в пределах уровня производительности S2 (или ниже/выше уровня, как указано через ДТ процент и относительные степени DTU различной производительности уровней как описано на сайте MSDN).

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

+0

DTU относится только к S0 для устаревших выпусков Web/Business. Во всех других выпусках 100% означает, что вы максимально используете ресурсы, доступные в издании. –

Смежные вопросы