Примітка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
Застосовується до цієї Power Platform рекомендації контрольного списку Well-Architected Performance Efficiency:
PE:08 | Оптимізуйте продуктивність даних. Оптимізуйте сховища даних для їх передбачуваного та фактичного використання в робочому навантаженні. |
---|
У цьому посібнику описано рекомендації щодо оптимізації продуктивності даних. Оптимізація продуктивності даних полягає в уточненні ефективності, з якою робоче навантаження обробляє та зберігає дані. Кожна операція робочого навантаження, транзакція або обчислення зазвичай покладаються на швидкий і точний пошук, обробку та зберігання даних. Коли продуктивність даних оптимізована, робоче навантаження працює безперебійно. Скомпрометована продуктивність даних створює ефект доміно через низьку ефективність роботи. Нездатність оптимізувати продуктивність даних призводить до затримок відповідей, підвищеної затримки та обмеженої масштабованості. Це ставить під загрозу ефективність всього робочого навантаження.
Визначення
Термін | Визначення |
---|---|
сховище даних | Ресурс, який зберігає дані, такі як база даних, сховище об’єктів або спільний доступ до файлів. |
Index | Структура бази даних, що забезпечує швидкий доступ до елементів. |
Аналітична обробка онлайн (технологія OLAP) | Технологія, яка систематизує великі бізнес-бази даних, підтримує комплексний аналіз і виконує складні аналітичні запити без негативного впливу на транзакційні системи. |
Обробка транзакцій в Інтернеті (OLTP) | Технологія, яка реєструє ділові взаємодії так, як вони відбуваються в повсякденній діяльності організації. |
Перегородки | Процес фізичного поділу даних на окремі сховища даних. |
Тюнінг запитів | Процес, який оптимізує швидкість запиту до бази даних. |
Ключові стратегії дизайну
Щоб оптимізувати використання даних, переконайтеся, що сховища даних оптимізовано для використання за призначенням і для фактичного використання в робочому навантаженні. Оптимізоване використання даних може покращити продуктивність запитів, зменшити споживання ресурсів та підвищити загальну ефективність системи. Розглянемо наступні стратегії:
Дані профілю. Аналізуйте свої дані та переконайтеся, що ваша модель даних добре підходить для вашого робочого навантаження. Враховуйте такі фактори, як нормалізація даних і методи розбиття на розділи. Для ефективного пошуку даних переконайтеся, що ви вибрали відповідні типи даних і визначили зв’язки між таблицями.
Оптимізуйте виконання запитів. Аналізуйте та оптимізуйте запити, які виконуються в робочому навантаженні. Використовуйте такі методи, як оптимізація запитів і кешування. Використовуйте подання на стороні сервера для попереднього фільтрування даних. Щоб виявити вузькі місця, використовуйте інструменти моніторингу продуктивності, а потім внесіть необхідні покращення.
Регулярно контролюйте і налаштовуйте систему. Постійно контролюйте продуктивність свого робочого навантаження та повторюйте налаштування сховища даних та оптимізацію запитів. Ґрунтуючись на найкращих практиках налаштування продуктивності, аналізуйте системні показники, виявляйте сфери для вдосконалення та впроваджуйте зміни. У міру зростання обсягу даних вам, можливо, доведеться оновлювати свої запити, щоб вони залишалися ефективними.
Дані профілю
Профілювання даних передбачає вивчення даних із джерела та збір інформації про них. Мета полягає в тому, щоб зрозуміти якість, структуру та характеристики даних про робоче навантаження. Цей процес дозволяє виявляти такі проблеми, як відсутні значення, дублікати, неузгоджені формати та інші аномалії.
Для ефективного профілювання даних розгляньте такі стратегії:
Розуміти структуру даних. Вивчіть структуру даних, зокрема таблиці, стовпці та зв’язки. Визначте типи даних, довжину та обмеження, які застосовуються до кожного стовпця. Оцінка структури даних допомагає зрозуміти, як організовані дані та як вони пов’язані з іншими елементами даних.
Проаналізуйте обсяг даних. Оцініть обсяг ваших даних, щоб зрозуміти загальний розмір і закономірності зростання. Визначте кількість записів або документів і розмір окремих таблиць або колекцій. Ця інформація допоможе оцінити вимоги до сховища та виявити проблеми з масштабованістю.
Визначте зв’язки між даними. Дослідіть взаємозв’язки між елементами даних. Дізнайтеся, як пов’язані дані, щоб визначити, як зміни в одній таблиці або документі можуть вплинути на пов’язані дані.
Оцініть якість даних. Оцінюйте якість своїх даних, вивчаючи такі фактори, як повнота, точність, послідовність та унікальність. Виявляйте аномалії даних, відсутні значення або повторювані записи, які можуть вплинути на цілісність даних і продуктивність запитів. Цей крок допоможе вам визначити області для очищення та вдосконалення даних.
Розподіл даних із захопленням. Проаналізуйте розподіл значень у кожному стовпці, щоб визначити закономірності даних. Виявляйте часті та рідкісні значення, викиди та спотворення даних. Щоб оптимізувати продуктивність запитів, проаналізуйте, чи будуть альтернативні ключі доречними для забезпечення покращеної продуктивності.
Моніторинг продуктивності даних
Моніторинг продуктивності даних – це практика послідовного відстеження ефективності сховищ даних. Він передбачає збір та аналіз показників продуктивності, специфічних для операцій з даними, з використанням інструментів, адаптованих для системного рівня, конкретних баз даних або сторонніх рішень моніторингу. Ефективний моніторинг продуктивності даних дає змогу завчасно виявляти та пом’якшувати потенційні вузькі місця, забезпечуючи ефективність процесів і завдань, пов’язаних із даними.
Щоб відстежувати ефективність даних, розгляньте такі стратегії:
Збирайте показники на основі конкретних даних. Зберіть ключові показники, які безпосередньо стосуються ефективності даних. Ці показники включають час відповіді запиту та пропускну здатність даних.
Налаштуйтеоповіщення про передачу даних. Налаштуйте сповіщення спеціально для показників даних. Використовуйте попередньо визначені порогові значення або аномалії в цих показниках, щоб активувати сповіщення. Сповіщення дають змогу отримувати сповіщення, коли показники ефективності виходять за межі допустимих діапазонів або демонструють ненормальну поведінку; Наприклад, екземпляр якщо запит до бази даних займає більше часу, ніж очікувалося, або якщо пропускна здатність даних значно падає. Ви можете налаштувати ці сповіщення за допомогою спеціалізованих інструментів моніторингу або користувацьких сценаріїв.
Діагностуйте проблеми з продуктивністю даних. Регулярно переглядайте зібрані показники даних, щоб виявляти потенційні вузькі місця в продуктивності або погіршення роботи з даними. Інструменти візуалізації або інформаційні панелі можуть бути неоціненними в цьому процесі, допомагаючи виявити тенденції, вузькі місця та відхилення в продуктивності даних. Після виявлення дослідіть основні причини цих проблем і сплануйте відповідні кроки щодо їх усунення.
Дані розділів
Розбиття на розділи передбачає поділ великих наборів даних або великих обсягів робочих навантажень на менші, керовані підмножини. Розбиття на розділи підвищує ефективність роботи даних за рахунок розподілу робочого навантаження та покращення паралельної обробки. Це також забезпечує більш ефективний доступ до даних на основі конкретних потреб і шаблонів запитів. Ви можете розділити дані по вертикалі або горизонталі (це також називається шардингом). Наприклад, якщо ви використовуєте Dataverse таблиці Elastic, подумайте, яким повинен бути ключ розбиття.
Стратегія | Визначення | Приклад | Випадки використання |
---|---|---|---|
Вертикальне розбиття | Поділіть таблицю на менші таблиці, вибравши конкретні стовпці або поля для кожного розділу. Кожен розділ являє собою підмножину повних даних. | Якщо у вас є таблиця зі стовпцями A, B, C і D, можна створити одну таблицю зі стовпцями A та B, а іншу – зі стовпцями C і D. | - Таблиця містить багато стовпців, але запити не мають доступу до всіх стовпців разом. - Деякі стовпці більші за інші, і їх розділення може підвищити продуктивність вводу/виводу. - Різні частини даних мають різні схеми доступу. |
Горизонтальне розбиття | Розділення даних на основі рядків або діапазонів значень (також відоме як шардинг). Кожен розділ містить підмножину рядків зі схожими характеристиками. | Якщо у вас є таблиця з рядками від 1 до 1000, ви можете створити один розділ із рядками від 1 до 500, а інший із рядками від 501 до 1000. | - Набір даних завеликий для одного місця або сервера. - Доступ до даних здійснюється на основі певних діапазонів або фільтрів. - Необхідність розподілити робоче навантаження між фізичними вузлами або серверами для підвищення продуктивності. |
Щоб розбити дані на розділи, виконайте такі дії:
Аналізуйте дані та запити. Аналізуйте дані та шаблони запитів, щоб визначити відповідні стратегії поділу або шардингу. Розуміти характер даних, способи доступу та вимоги до розповсюдження.
Визначте ключ. Виберіть ключ розбиття або шардингу, щоб розподілити дані між розділами або шардами. Ретельно підбирайте ключ, виходячи з характеристик даних і вимог до запиту.
Визначте логіку. Визначте логіку розбиття або шардингу на основі обраного ключа. Розгляньте можливість поділу даних на діапазони, застосування алгоритмів хешування або використання інших методів розбиття.
Оптимізуйте запити
Оптимізація запитів уточнює запити, щоб зменшити кількість даних, які відповідають вимогам, і даних, що повертаються. Ці коригування підвищують ефективність і швидкість пошуку даних. В результаті база даних має менше навантаження, ресурси працюють ефективніше, а користувачі насолоджуються більш плавною взаємодією.
Для оптимізації запитів до бази даних розгляньте наступні стратегії:
Переписуйте запити. Переглядайте та аналізуйте складні запити, щоб виявити можливості для їх переписування. Розгляньте можливість реструктуризації логіки запитів, усунення зайвих операцій або спрощення синтаксису запитів.
Уникайте проблеми із запитом N+1. Мінімізуйте кількість звернень до бази даних, використовуючи об’єднання та пакетне отримання для ефективного отримання пов’язаних даних.
Перевпорядкувати з’єднання. Оцініть і розгляньте можливість перестановки порядку з’єднання, щоб мінімізувати кількість рядків у кожній операції з’єднання. Порядок об’єднання таблиць може впливати на продуктивність запиту.
Запити до кешу. Зберігайте результати часто виконуваних запитів для зручного повторного використання. Кешування запитів усуває потребу в повторному виконанні одного і того ж запиту, а також зменшує накладні витрати на обробку запитів.
Слідкуйте і налаштовуйте. Відстежуйте показники продуктивності запитів, такі як час виконання, використання ресурсів і пропускна здатність запитів. Використовуйте інструменти профілювання баз даних і функції моніторингу, щоб виявляти неправильно працюючі запити. Використовуйте цю інформацію для оптимізації виконання запитів.
Архівування та очищення даних
Архівація та очищення – це стратегії, які оптимізують зберігання даних. Архівування переміщує старіші дані, до яких рідко звертаються, до більш економічно ефективного сховища. Видалення даних призводить до остаточного видалення зайвих даних. Обидва методи сприяють підвищенню ефективності продуктивності за рахунок зменшення обсягу даних, збільшення швидкості доступу до даних і скорочення часу резервного копіювання та відновлення.
- Зменшення обсягу даних: Менший обсяг даних означає швидший час обробки, що забезпечує швидку реакцію на запити користувачів.
- Збільшення швидкості доступу до даних: Обрізаний набір даних дозволяє швидше запитувати та отримувати дані, оптимізуючи швидкість реагування системи.
- Скорочення часу резервного копіювання та відновлення: менші набори даних прискорюють процеси резервного копіювання та відновлення, мінімізуючи час простою та забезпечуючи стабільну продуктивність.
Архівування та очищення відіграють важливу роль у підтримці максимальної ефективності продуктивності в системах, керованих даними.
Оптимізуйте навантаження на сховище
Оптимізація навантаження на сховище означає оптимізацію запитів до системи зберігання. Це допомагає усунути непотрібні запити, покращує пошук даних і дозволяє уникнути перевантаження системи зберігання. Оптимізація навантаження на сховище гарантує, що система зберігання залишається реагувати на законні запити та підтримувати максимальну продуктивність. Впроваджуйте стратегії для зменшення навантаження на сховище даних. Щоб оптимізувати навантаження сховище даних, розгляньте наступні стратегії.
Використовуйте кешування
Кешування зберігає загальнодоступні дані в області зберігання зі швидким доступом, що робить отримання даних швидшим, ніж їх витягування з основного джерела. Ця техніка підвищує продуктивність даних, скорочуючи час доступу та уникаючи повторюваних отримань даних. Кешування покращує швидкість читання та час відповіді користувача, особливо для даних, до яких часто звертаються. Цей метод найбільш ефективний на статичних даних або даних, які рідко змінюються.
Щоб забезпечити оптимальну ефективність кешування, враховуйте такі фактори, як політика закінчення терміну дії, стратегії виселення та керування розміром кешу. Налаштуйте параметри, як-от час виконання в реальному часі (TTL), для оптимальної продуктивності. Щоб використовувати кеш для оптимізації навантаження на сховище, розгляньте наступні стратегії:
Кешування в пам’яті: виконуйте кешування в пам’яті, щоб зберігати в пам’яті дані, до яких часто звертаються, для швидкого пошуку. Ви можете використовувати цю техніку для прикладних даних, які дорого обчислюються або витягуються з бази даних. Кешування в пам’яті корисне для даних, які ви часто читаєте, але не часто змінюєте. Наприклад, для кешування даних можна використовувати змінні в хмарних потоках або колекціях у програмах на полотні.
Кешування запитів до бази даних: використовуйте цей метод для кешування результатів запитів до бази даних, щоб уникнути виконання одного запиту кілька разів. Кешування запитів до бази даних корисне для складних і трудомістких запитів до баз даних. Коли ви кешуєте результати запиту, наступні запити за тим самим запитом повертаються швидко. Також розгляньте можливість використання представлень на стороні сервера, де це можливо, для попередньої фільтрації даних, щоб звузити коло даних, що відповідають вашому запиту.
Мережеве кешування доставки контенту: використовуйте цю техніку для кешування веб-вмісту на розподілених мережевих серверах, щоб зменшити затримку та покращити доставку контенту. Мережеве кешування доставки контенту ефективне для статичного контенту, такого як зображення, CSS файли та файли JavaScript. Мережі доставки контенту зберігають копії контенту в різних місцях по всьому світу, тому користувачі можуть отримати доступ до контенту з сервера, розташованого поблизу них.
Оптимізуйте оновлення даних
Оптимізація оновлень даних передбачає оцінку оновлень даних, які виконуються, щоб переконатися в їхній продуктивності. Оновлення можуть впливати на продуктивність більше, ніж інші операції, оскільки вони можуть спричинити непотрібну роботу та спричинити конфлікти блокування.
Щоб оцінити, як оптимізувати оновлення даних, враховуйте:
Зміни в даних. Оптимізуйте автоматизацію, використовуючи попередні зображення даних або фільтри, щоб мінімізувати роботу, коли фактичні зміни не відбулися. Уникайте запуску автоматизації для незмінених даних.
Автоматизація. Оцінюйте, коли й як запускаються оновлення на основі змін у даних, і оптимізуйте активатори, щоб включити фільтр. Наприклад, запускати автоматизацію лише при зміні певного поля в джерелі даних. Оцінюйте оновлення, які поступово запускають автоматизацію кілька разів. Замість цього подумайте, чи можете ви створити власну операцію для маркер всієї обробки. Наприклад, якщо замовлення відправляється, а також дата відправлення та номер відстеження оновлюються окремо, вони можуть бути оновлені одночасно в користувацькій операції "ShipOrder".
Глухі кути. Оцінюйте повільні операції оновлення, які можуть спричиняти проблеми через оновлення кількох потоків одних і тих самих даних у різних послідовностях. Ця неефективність може призвести до конфліктів блокування або навіть потенційних глухих кутів, що призведе до непотрібних переробок. Оновлюйте різні ресурси в тій самій послідовності, щоб мінімізувати суперечки.
Масові оновлення. Якщо ви виконуєте операції з кількома рядками таблиці, радимо використовувати групові операції.
Оптимізуйте рух та обробку даних
Оптимізація переміщення та обробки даних передбачає підвищення ефективності та продуктивності операцій, пов’язаних із вилученням, перетворенням, завантаженням та обробкою даних. Розглянемо наступні ключові аспекти оптимізації руху та обробки даних:
Оптимізація вилучення, перетворення та завантаження (ETL): оптимізуйте процеси ETL, щоб мінімізувати час обробки. Ви можете оптимізувати процес вилучення, впровадити ефективні алгоритми трансформації та оптимізувати процес завантаження. Коли ви робите кожен крок ефективним, ви оптимізуєте загальний робочий процес.
Паралельна обробка: використовуйте методи паралельної обробки для підвищення продуктивності. Коли ви розподіляєте завдання з обробки даних між кількома потоками або вузлами, ви можете розділяти та обробляти робоче навантаження одночасно, що призводить до швидкої обробки.
Пакетна обробка: групуйте схожі завдання разом, щоб зменшити накладні витрати, спричинені повторюваними операціями. Обробляйте кілька завдань пакетно, щоб скоротити загальний час обробки.
Дизайн для наближення даних
Близькість даних – це стратегічне розміщення даних ближче до користувачів або служб, які найчастіше до них звертаються. Зменшення фізичної або логічної відстані між даними та їх користувачами забезпечує швидший доступ до даних та покращену реакцію. Щоб оптимізувати конструкцію для безпосередньої близькості, розгляньте такі стратегії:
Оцінюйте шаблони доступу до даних: оцінюйте шаблони доступу вашого робочого навантаження та дані, до яких часто звертаються. Цей аналіз може допомогти визначити, де розмістити дані для отримання максимальної вигоди.
Вибирайте рішення, які підтримують переміщення даних: розгляньте рішення, які пропонують динамічне переміщення даних на основі зміни моделей доступу, забезпечуючи оптимальне розташування даних.
Вибирайте рішення, які підтримують синхронізацію даних: якщо ви обслуговуєте розподілену базу користувачів, вибирайте рішення, які забезпечують синхронізацію даних у різних регіонах, щоб забезпечити доступність реплік даних у безпосередній близькості від користувачів.
Компроміс: якщо базові дані часто змінюються, запровадьте механізм анулювання кешу, щоб гарантувати, що кешовані дані залишаються актуальними.
Power Platform Сприяння
Моніторинг продуктивності даних: Щоб відстежувати продуктивність даних, розгляньте можливість використання Azure Monitor для збору та аналізу показників інфраструктури, журналів та даних додатків. Ви можете інтегрувати Monitor з іншими сервісами, наприклад Application Insights. Application Insights Забезпечує моніторинг продуктивності додатків і підтримує безліч платформ.
Application Insights Збирає дані про використання та продуктивність. Ви можете використовувати аналітику журналів , щоб співвіднести ці дані з даними про конфігурацію та продуктивність у ресурсах Azure. Потік Application Insights даних for Dataverse наразі надає дані про продуктивність, пов’язані з Dataverse вхідними викликами API, Dataverse викликами виконання плагіна та Dataverse викликами SDK.
Оптимізуйте шаблони даних запитів у програмах на полотні: дотримуйтесь задокументованих вказівок і пропозицій. Дивіться розділ Оптимізовані шаблони даних запиту в Power Apps.
Оптимізуйте те, як ви налаштовуєте, розширюєте або інтегруєте з: Dataverse Дотримуйтесь задокументованих найкращих практик та вказівок. Перегляньте практичні поради та вказівки під Microsoft Dataverse час використання.
Оптимізуйте запити до бази даних і продуктивність індексу: використовуйте функцію аналізу продуктивності запитів Azure SQL Database для оптимізації запитів, таблиць і баз даних. Ви також можете використовувати цю функцію для виявлення та усунення проблем із продуктивністю запитів.
Для реляційних баз даних дотримуйтесь рекомендацій щодопроектування індексу, SQL керівництва індексом сервера та Azure Cosmos DB вказівок щодо індексу. Використовуйте базу даних SQL для виконання автоматичної настройки запитів з метою поліпшення їх продуктивності.
Для баз даних SQL слід регулярно реорганізовувати або перебудовувати індекси. Виявляйте повільні запити та налаштовуйте їх для покращення продуктивності. Багато движків баз даних мають функції налаштування запитів. Щоб отримати додаткові відомості, ознайомтеся з практичними порадами щодо виконання запитів.
Azure Cosmos DB має політику індексації за замовчуванням, яка індексує кожну властивість кожного елемента та забезпечує індексацію діапазону для будь-якого рядка чи числа. Ця політика забезпечує ефективне виконання запитів, і вам не потрібно заздалегідь керувати індексами.
Оптимізуйте навантаження на сховище: багато служб баз даних Azure підтримують читання реплік. Доступність та конфігурація читаних реплік варіюється залежно від служби бази даних Azure. Зверніться до офіційної документації для кожної служби, щоб зрозуміти деталі та можливості.
Пов’язані відомості
- Огляд створення перформанта Power Apps
- Виберіть Azure сховище даних для вашої програми
- Налаштуйте Power Automate тригер ланцюжка, додавши умови
- Dataverse еластичні столи
Контрольний список ефективності продуктивності
Зверніться до повного зведення рекомендацій.