Посібник із розробки, впровадження та вирішення проблем у базі даних SQL Server

0

База даних — це модель, у якій дані можуть зберігатися логічно та бути отриманими для подальшого використання. Якщо ви знайомі з Microsoft Excel, ви вже зберігаєте важливі дані в табличній формі.

База даних — це не що інше, як таблична форма зберігання даних, подібна до електронних таблиць. Він містить стовпці та рядки, де стовпці складаються з атрибутів, а рядки – із записів.

Наприклад, якщо ви створюєте базу даних імен і номерів телефонів своїх клієнтів, вам знадобляться такі імена стовпців, як FirstName, LastName і PhoneNumber. Потім рядки можна додавати під стовпці відповідно до кількості клієнтів. База даних може отримувати та оновлювати ваші дані за потреби. Він може виконувати різні складні обчислення та перехресно перевіряти записи в різних таблицях.

Типи баз даних

Бази даних можна в основному розділити на два різних типи – плоский файл і реляційний.

Плоский файл

Якщо ви маєте справу з невеликим обсягом даних, система бази даних із плоскими файлами може стати найкращим рішенням для ваших потреб. Незважаючи на те, що складні дані можуть зберігатися в плоскому файлі, цей процес може бути трудомістким і дорогим порівняно з реляційною системою управління. Таким чином, прості дані, у яких рядки даних можна відрізнити просто комою, належать до плоскої файлової системи.

Реляційний

База даних, наприклад MySQL, Oracle або сервер MS SQL, може служити для створення великих і складних структур даних у дуже логічний спосіб. Оскільки таблиці можуть бути пов'язані одна з одною, їх називають «реляційною базою даних».

Кроки для розробки бази даних за допомогою SQL Server

Крок 1

Встановіть програмне забезпечення – спочатку вам потрібно встановити програмне забезпечення від Microsoft. Користувачі Mac можуть інсталювати з програм DbVisualizer або Squirrel, які мають відкритий код.

Крок 2

Представляємо SQL Server Studio – вам потрібно запустити програму, запустивши студію керування SQL server. Якщо у вас уже є запущений сервер, вам потрібен певний дозвіл для підключення. Але якщо ви створюєте нову базу даних, вам потрібно вибрати «Автентифікація Windows» і вставити назву бази даних як (.) Тепер ви готові до підключення, натиснувши кнопку «Підключити».

Крок 3

Знайти папку бази даних – вам потрібно знайти папку бази даних. Після підключення відкриється вікно Object Explorer. Ви можете натиснути піктограму «+», щоб розгорнути параметр, а потім легко знайти папку бази даних.

Крок 4

Створити нову – віддалені експерти АБД перейдуть до створення нової бази даних. Вам потрібно назвати базу даних і залишити решту функцій працювати автоматично. Коли ви вводите імена бази даних, два файли, а саме; Дані та файл журналу будуть створені за замовчуванням. Файли даних зберігають усі ваші дані, тоді як файли журналу можуть відстежувати оновлення вашої бази даних. Тепер вам потрібно буде натиснути «ОК», і в папці з’явиться значок нової циліндричної бази даних.

Крок 5

Створити таблицю – виберіть папку «Таблиці», клацнувши правою кнопкою миші папку розгорнутої бази даних. Звідти можна вибрати «Нову таблицю» для створення та редагування нової таблиці.

Крок 6

Створити первинний ключ – перший стовпець у вашій таблиці бази даних має містити первинний ключ. Цим ключем може бути будь-який елемент, як-от ідентифікатор або серійний номер. Ви можете зняти позначку з кнопки «дозволити нуль» і ввести «int» у параметрі «Тип даних». Але якщо ви хочете дозволити null, ваш перший запис точно буде нульовим.

Крок 7

Структура таблиці – структура таблиці повинна бути організована належним чином. Оскільки таблиці створюються за допомогою стовпців і полів, вам потрібно представити запис бази даних кожним стовпцем. Наприклад, якщо ви створюєте базу даних контактів своїх клієнтів, у ній повинні бути такі стовпці, як «Ім’я», «Прізвище», «Адреса» та «Номер телефону».

Крок 8

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

  • int – цей тип даних в основному використовується для цілих чисел і може спостерігатися в полі ID.
  • nchar (#) – в основному використовується для текстів, таких як імена, прізвища та адреси. У дужках має бути максимальна кількість символів, яка може бути дозволена в кожному полі. Номери телефонів також можна зберігати в цьому форматі, оскільки він не потребує жодних математичних розрахунків.
  • decimal( x,y) – тут можна зберігати десяткову форму чисел. Дужки позначають загальну кількість цифр на малюнку та кількість цифр відразу після коми. Наприклад, десятковий (4, 2) збереже числа як 00.00.
Крок 9

Збережіть таблицю даних – після завершення завдання створення таблиці з різними полями та стовпцями вам потрібно зберегти таблицю, назвавши її. Назва таблиці має допомогти вам розпізнати вміст у таблиці бази даних. Панель інструментів містить піктограму Зберегти, яку потрібно клацнути, щоб виконати дію.

Крок 10

Додайте дані в таблицю – коли ви готові до таблиці, тепер ви можете додати дані відповідно до ваших вимог. Ви можете розгорнути папку Tables у вікні Object Explorer, і якщо для завантаження нової таблиці потрібен час, вам просто потрібно оновити папку Table. Наприклад, якщо ви додали 400 рядків, просто виберіть «Редагувати перші 400 рядків», клацнувши правою кнопкою миші папку Таблиця.

Крок 11

Зберегти дані та виконати таблицю – якщо після збереження всіх даних ви готові, просто натисніть кнопку «Виконати SQL» на панелі інструментів. Сервер SQL працюватиме автоматично та переглядатиме всі ваші збережені дані. Ви також можете виконати SQL, натиснувши Ctrl + R на клавіатурі. Помилки, якщо такі є, будуть виділені перед початком процесу виконання.

Крок 12

Запит даних – тепер, після завершення процесу проектування, ви можете легко запитувати свої дані для всіх аналізів і звітів. Таким чином, звіти із запитами даних можна використовувати для адміністративних цілей вашого підприємства.

Вирішення проблем з базою даних у SQL Server

Проблеми з підключенням

Підключення може бути дуже поширеною проблемою сервера бази даних. Коли нові користувачі починають взаємодіяти з сервером, з’єднання іноді може розгортатися. Сервер може мати відмінне з’єднання протягом багатьох років, але може раптово втратити синхронізацію між програмами та кінцевими користувачами в його системі.

Щоб усунути цю проблему, потрібно зосередитися на тривалості генерації помилки. На малюнку нижче пояснюється процес усунення несправностей.

Якщо помилка виникає протягом 25-30 секунд, ви можете бути впевнені, що на сервері виникли проблеми з підключенням. З іншого боку, якщо тривалість становить лише кілька секунд, наприклад 5-6 секунд, ви можете легко припустити, що проблема пов’язана з конфігурацією та налаштуваннями або будь-якими проблемами, пов’язаними з дозволами на сервері. У разі 30-секундного тайм-ауту вам потрібно правильно перевірити хост, і тоді сервер може не надати доступ до нових клієнтів. Завжди бажано, щоб сервер можна було використовувати з конкретними іменованими екземплярами, щоб уникнути цієї проблеми.

Якщо з’єднання все ще діє наполегливо, ви можете виконати Profiler з аудитом входу, а потім перевірити кнопку Failed Audit Login, щоб визначити всі невдалі події. Якщо нічого не відбувається, ви можете бути впевнені, що брандмауери, іменований екземпляр і слухачі портів доступні за замовчуванням. Якщо тут станеться будь-яка подія, вам знадобляться додаткові детальні відомості про вашу проблему з підключенням.

Архітектурні питання

Архітектурні проблеми можуть включати блокування, взаємоблокування та процес надмірного блокування. Зі збільшенням навантаження та кількості кінцевих користувачів ці архітектурні проблеми можуть набути великої форми на вашому сервері. Тут код неправильно представляє паралельну модель сервера SQL через блоки узгодженості різних транзакцій. Хоча проблема залишається прихованою до збільшення використання програми, все ж її потрібно вирішити для належного архітектурного фону. Ця проблема дещо подібна, коли автомобільна шина добре працює на гладких дорогах міста, але може бути схильною до аварій під час подорожі горбистими дорогами. Запит DMV може бути найкращим рішенням для вирішення цих неактивних проблем на вашому сервері. Ви можете представити команду запиту як sys. dm_os_waiting_tasks, щоб отримати уявлення про кількість запитів, які перебувають у стані очікування. Наприклад, цей конкретний DMV перевіряє запити, які заблоковано.

SELECT
w.session_id
w.wait_duration_ms
w.wait_time
w.blocking_session_id
r.total_elapsed_time
FROM
sys.dm_os_waiting_tasks
WHERE
w.session_id>100

DMV також може перевірити загальну статистику сервера, якщо якесь завдання знаходиться в стані очікування. Таким чином, проблеми блокування можна усунути, якщо запити можуть бути створені належним чином. Колізії даних можна уникнути, якщо індекс може працювати набагато швидше протягом всієї операції. Ви можете знайти тупикову ситуацію та ефективно її вирішити. Взаємоблокування можна усунути шляхом переорганізації операційних наказів із усіма проблемами в послідовності. Параметр підказок NOLOCK також можна використовувати, але ви повинні знати про всі зворотні ефекти цього у вашому середовищі узгодженості даних. Вам можуть знадобитися спеціальні навички для усунення цих проблем взаємоблокувань. Якщо ви помилитеся в один крок, усунення несправностей може виявитися дуже дорогим для вас!

Аварійного відновлення

Хоча відновлення даних можливе на різних етапах усунення несправностей SQL, завжди рекомендується створювати належну резервну копію за межами сайту на випадок різних аварій і непередбачених ситуацій. Вам потрібно виконати цільову точку відновлення (RPO) і цільовий час відновлення (RTO), регулярно оновлюючи наявний план відновлення. Регулярні оновлення та тестування допомагають вашому серверу впоратися зі змінами навколишнього середовища в розпал кризової ситуації.

Сповіщення та помилки

Регулярне налаштування сповіщень є одним із важливих завдань, які виконує сервер бази даних. Помилки та проблеми можуть легко з’явитися, якщо сповіщення використовуються в правильній конфігурації. Повідомлення про помилку може з’являтися разом із технічними деталями та може бути дуже корисним для вирішення проблем. У кількох виняткових випадках, коли повідомлення про помилку не надає подробиць, автоматизовані операції мають виконуватися різними параметрами журналювання, які надаються серверами SQL. Пошукові системи також можуть бути дуже корисними, якщо ви вставите відповідний код помилки в їхні вікна пошуку. Ви просто повинні визначити першопричину, перш ніж діяти над вирішенням будь-яких проблем із сервером. Якщо ви хочете отримати допомогу в соціальних мережах, ви можете звернути увагу на #sqlhelp у Twitter, який також запропонує вам чудові варіанти вирішення помилок.

Проблеми продуктивності

Продуктивність бази даних залишається без будь-яких нарікань, поки розмір не буде невеликим. Але коли розмір бази даних збільшується, на сервері можуть виникати різні проблеми з продуктивністю. Таким чином, сервери можуть поступово перестати відповідати на певні запити, які виконуються у фоновому режимі та викликають різні проблеми. Тепер, щоб ідентифікувати ці запити, ви можете використовувати процес sp_WhoIsActive і знайти їх. Цей DMV виявився дуже корисним інструментом під час усунення проблем і налаштування продуктивності бази даних.

Як і будь-яка інша програма Windows, база даних SQL-сервера також може викликати різні проблеми. Хоча усунення проблем не є неможливим завданням, воно вимагає практичних навичок експертів із баз даних. Запити та операції мають виконуватися одночасно з усім програмним забезпеченням резервного копіювання та антивірусним програмним забезпеченням, щоб забезпечити продуктивність бази даних. Належне виконання хоста SQL-сервера залежить від загальної продуктивності та можливостей усунення несправностей за замовчуванням. Можливо, вам буде дешевше доручити роботу з усунення несправностей відповідній групі експертів і зосередитися на правильному впровадженні бази даних у вашій організації.

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі