TGViewer
SQL и Анализ данных SQL и Анализ данных @databases_tg · 12.5K subscribers
Post #996 4.22K
🧠 8 полезных советов по Oracle SQL

Если ты уже «умеешь в SELECT», пора прокачать SQL в Oracle до следующего уровня. Эти советы не для новичков — они для тех, кто работает с продом, сложными запросами и оптимизацией.

⚡ 1. Используй `PIVOT`/`UNPIVOT` вместо `CASE`
Поворот таблиц через PIVOT делает код чище и легче масштабируется.


SELECT * FROM (
SELECT department_id, gender, salary FROM employees
)
PIVOT (
SUM(salary) FOR gender IN ('M' AS male_salary, 'F' AS female_salary)
);


🧱 2. Вызывай функции как таблицы (`TABLE()` + PL/SQL)
Если функция возвращает коллекцию, её можно SELECT’ить напрямую:


SELECT * FROM TABLE(my_package.get_active_users(SYSDATE));


🚀 3. Генерация чисел без тормозов
CONNECT BY LEVEL — это медленно. Лучше так:


SELECT rownum FROM dual CONNECT BY rownum <= 10000;


🔍 4. Помогай оптимизатору через `CARDINALITY` hint
Oracle может ошибаться в оценке количества строк. Подскажи ему:


SELECT /*+ cardinality(e 100000) */ * FROM employees e ...


🧠 5. Используй `RESULT_CACHE` для повторяемых данных
Снизь нагрузку:


SELECT /*+ RESULT_CACHE */ * FROM country_codes;


📉 6. Никогда не делай `ORDER BY` без `FETCH FIRST` или `ROWNUM`
Не сортируй всё зря:


SELECT * FROM employees ORDER BY salary DESC FETCH FIRST 10 ROWS ONLY;


📦 7. Управляй CTE через `MATERIALIZE` и `INLINE`
Это может влиять на производительность:


WITH /*+ MATERIALIZE */ heavy_part AS (...)
SELECT * FROM heavy_part WHERE rownum = 1;


📊 8. Освой `MODEL` для расчётов как в Excel
Рядовые и прогнозные расчёты в SQL без курсоров:


SELECT * FROM sales
MODEL
PARTITION BY (region)
DIMENSION BY (month)
MEASURES (sales)
RULES (
sales[13] = sales[12] * 1.1
);


💡 Не ограничивайся SELECT — используй весь потенциал Oracle SQL.

👍 Лайк и сохраняй себе, чтобы не потерять

➡ SQL Community | Чат
  • 👍 13
  • ❤ 4
  • 🤔 2
  • 💊 2
  • 🔥 1
  • 🤨 1
More from @databases_tg
  1. Oct 2, 2026Как SQLite превращает числа в текст в 2 раза быстрее? Трюк с парами цифр Обычно число пере…
  2. Oct 2, 2026В субботу, 17 октября, Москва станет точкой притяжения для всех специалистов в области Rec…
  3. Oct 1, 2026Жиз
  4. Sep 30, 2026📝 5 уровней ИИ-агентов: от промпта до продакшена Context, loop, Jev, harness и evals: раз…
  5. Sep 26, 2026UPDATE — оператор обновления данных в MySQL 🗂️ Если в таблице нужно изменить значение в у…
  6. Sep 25, 2026🧠 SQL-задача с подвохом Есть таблица транзакций: CREATE TABLE transactions ( id int PRIMA…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →