Я б сказав, що щодо SQL слід знати два типи речей (це справді стосується багатьох технологій), є конкретні технічні речі, такі як приєднання, підзапроси, об'єднання тощо, які ви розумієте чи ні, і тоді є речі як дизайн баз даних та моделювання даних, що має градієнт майстерності, як мистецтво. З часом ти стаєш кращим з тими більш м'якими речами, але ніколи не знаєш їх, тому що немає «вони працюють так».
Однак, ось, з якою я б пішов із загальною схемою, я абсолютно відкритий для коментарів / думок інших, де я можу помилятися.
Новачок
- Де пункти (між, між тощо)
- Оновити синтаксис
- Внутрішня vs ліва проти права приєднайтеся до розуміння та використання
- Синтаксис для зміни та створення структур
- Темп-таблиці та їх використання
- Курсори
- Основна ідея, для чого призначені індекси, хоча і не те, як вони працюють
- Розуміння того, для чого призначені закордонні ключі та як обходити їх (каскадні делети тощо)
- Розуміє основи угод
- Розуміє обмеження
Проміжний
- Як працюють індекси, різниця між кластеризованою, некластеризованою тощо, що таке сторінка та як вони розміщуються
- Розуміння підзапитів і може продумати їх використання в об'єднанні та десь
- Повороти
- Можна продумати приєднання таблиці до себе, коли це доречно
- Може створювати складні звіти даних за допомогою групових байтів із сукупними функціями
- Можна виконати базове профілювання лише в моніторинговій / налагоджувальній функції, як-от читання журналу
- Розуміє різницю між OLAP та OLTP та коли / де використовувати структури OLAP
- Знає, як використовувати тригери, а не використовувати їх
- Розуміє транзакції і може зрівняти їх, обробляючи збої в стеці
Розширений
- Можна прочитати план виконання та зрозуміти, як різні частини запиту впливають на нього
- Можна налаштовувати запити з підказками на виконання, не розгортаючи продуктивність (підказки про паралелізм, підказки, підказки циклу тощо)
- Може профілювати та використовувати сліди для виявлення та розуміння статистики страт під навантаженням у реальному світі
- Знає, які структури даних є на диску
- Може використовувати лічильники ефективності та розуміти, що таке завантаження та поведінка бази даних від моніторингу їх
- Знає, як спроектувати куб OLAP і зробити розширений пошук даних за допомогою одного
- Знає, як використовувати тригери та як безпечно їх використовувати, з мінімальним ризиком
- Знає, як використовувати розподілені транзакції навіть із шарами
Це все, що я міг придумати з верхньої частини голови. Будь ласка, залишайте коментарі, де згадуються інші, які я пропустив, або якщо я щось ставлю в неправильному місці. Я недостатньо просунутий, щоб знати величезний перелік передових методик, щоб відкласти хех