Як зробити перехід від DBA SQL Server до Oracle?


30

Як інтерес, якщо я перейду з DBA SQL Server до Oracle, що буде основним навчанням чи невідчуттям, що мені доведеться робити?

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



1
трохи гумору (вибачте, якщо ЗЗ), ви зустрічалися? dba.stackexchange.com/questions/16884/…
booyaa

Відповіді:


40

Oracle і SQL Server мають ряд архітектурних та ідіоматичних відмінностей, і кілька ключових бітів термінології використовуються по-різному в документації. З того часу я це зробив досить багато років, але деякі основні ідіоматичні відмінності:

  • Oracle не має прямого еквівалента tempdb. Глобальні таблиці темп є стійкими об'єктами, і ви не створюєте їх на ходу, як це було б із таблицею темпів у SQL Server.

  • Ідіоматичний PL / SQL набагато більш процедурний, ніж ідіоматичний T-SQL. З іншого боку, PL / SQL має функції для підтримки швидких опцій курсору, включаючи конструкції паралельного циклу. Часто проміжні результати курсору використовуються способами, подібними до речей сортування, для яких використовували б темп-таблиці в SQL Server. Подивіться, як використовувати "%", щоб отримати поліморфізм змінних типів курсору.

  • SQL * Plus - це інструмент командного рядка, подібний до SQLCMD. У ванільній установці це може бути все, що у вас є. Якщо вам потрібен інструмент GUI типу SSMS, ви можете отримати SQL Developer або сторонні інструменти, такі як TOAD. TOAD є досить дорогим.

  • Дізнайтеся про роль сегментів відкату (використовується в MVCC Oracle) та радості помилки "знімок занадто старий".

  • Отримайте обліковий запис Metalink, якщо можливо.

  • Прочитайте посібник з концепціями. У ньому багато корисної інформації для початківців.

  • Простори таблиць приблизно еквівалентні групам файлів.

  • SQL і діалект SQL, вбудований в PL / SQL, не зовсім одне й те саме в Oracle.

  • Oracle не підтримував рекурсивні CTE зовсім недавно. Ви можете робити рекурсивні запити за допомогою CONNECT BY.

  • Прочитайте документи для RMAN, щоб побачити, як робити резервні копії. Ви можете виконати кілька акуратних хитрощів, таких як об’єднання диференціальних резервних копій в єдину відновлювану резервну копію.

  • У словнику системних даних є таблиці "ALL", "USER" та "DBA". "USER_ " відображає об'єкти, що належать логіну. 'ALL_ ' показує всі об'єкти, з якими може читати логін. "DBA_ *" - це глобальне уявлення, але ви повинні мати відповідні дозволи, щоб побачити це. Напевно, ви будете використовувати словник даних більше з Oracle, ніж з SQL Server, тому познайомтеся з ним.

  • Кластеризовані таблиці називаються «впорядкованими індексами таблицями» в Oracle. "Кластеризовані таблиці" в Oracle відносяться до зовсім іншої функції. В Oracle кластеризована таблиця - це засіб, що дозволяє фізичне зберігання таблиць основного / детального опису на основі загального ключа. Ця функція не використовується широко.

  • Проіндексовані погляди в Oracle називаються «матеріалізованими поглядами». Вони працюють дещо інакше, з достатньо нюансами, щоб заслужити власне питання.

  • У Oracle немає поняття, еквівалентного «базі даних» у SQL Server. В Oracle схема є просто власником деяких об'єктів бази даних.

  • PL / SQL має явну структуру модуля під назвою "пакети".

  • Подивіться на використання послідовностей замість стовпців ідентичності.

  • Отримання плану запитів є трохи непогашеним у старих версіях Oracle (до 10г). Ви повинні створити таблицю (потрібного формату), щоб скинути план, а потім "ПОЯСНИТЬ ПЛАН" запит у таблицю, щоб отримати план запитів. Потім ви можете повернути план запитів із таблиці. Усі та їх собака мають улюблені запити щодо плану. Знайдіть у Google пошук і знайдіть його, а потім перемажте його за смаком. 10g додав пакет під назвою dbms_xplan , який спрощує роботу з планами запитів.

  • Якщо ви працюєте з Oracle на хості unix або linux, володіння знаннями сценаріїв оболонок не зашкодить.

  • Oracle має підтримку автономних транзакцій - ви можете здійснити внутрішню автономну транзакцію і очікувати, що вона буде вчинена, якщо батько відкинеться назад. Вкладені транзакції SQL Server не є справжніми вкладеними транзакціями і мають різну семантику. Ви можете наслідувати цю поведінку процедурою, що зберігається в CLR, на SQL Server, відкривши незалежне з'єднання і виконавши через це автономну операцію.

Oracle поставляється з меншою кількістю BI-інструментів поза коробкою, хоча Oracle продає сервери OLAP, засоби звітності та інструменти ETL.

  • Oracle вбудовує інструмент для великого навантаження під назвою SQL * Loader, який за функцією схожий на bcp.

  • Найближчий еквівалент SSIS - Oracle Warehouse Builder (OWB), але це окремий елемент і не входить у комплект із базовою системою.

  • Oracle створить інструмент звітності під назвою Oracle Reports , але це також не входить до базової системи. Це найближчий еквівалент службам звітування.

  • Oracle також виготовляє інструмент ROLAP під назвою Discoverer . Це найближчий продукт для Builder звітів, який виробляє Oracle. Більш недавні версії ("Дрейк") підтримують двигун OLAP від ​​Oracle.

  • Oracle використовував продукт OLAP під назвою Express. Одного разу вони вбудували його в основний движок Oracle СУБД, зберігаючи вбудовану структуру даних у непрозорих місцях. Він не є повністю сумісним з Express і має власний інтерфейс із дуже малою підтримкою сторонніх інструментів OLAP-front.

  • Oracle BI Enterprise Edition - це те, що раніше було Siebel Analytics. Він має деякі функції OLAP, але я не знайомий з ним. Можливо, хтось, хто це використовував, може хотіти прокоментувати. Без прямого визнання, що Siebel - це абсолютно окремий продукт від власного інструментарію BI, Oracle заявив, що "не було шляху до оновлення" від Oracle BI Standard Edition до Enterprise Edition. Зауважте, що і стандартний і корпоративний BI-пакети є окремими продуктами, а не в комплекті з базовою системою.

  • На практиці найближчим до SSAS, що продається Oracle, є Essbase (раніше Hyperion). Це окремий продукт і не в комплекті з базовою системою.

Не дивно, що BI-стратегія Oracle розглядається галузевими експертами як щось із сніданку собаки.

Напевно, є інші речі, про які я не можу придумати OTOH; Я додам їх так, як думаю про них.


1
Ого, це дуже близько до того, що я шукав. Чудова інформація! Я читав, що в Oracle є завдання типу SQL-сервера, які можна запускати автоматизовано. Що-небудь еквівалентне SSIS в Oracle?
darwindeeds

1
Найбільш близьким до SSIS в Oracle є Oracle Warehouse Builder (OWB), але він не входить в комплект із базовою системою. Ви повинні придбати його окремо. Існує інструмент для масового навантаження, схожий на bcp, який називається SQL * Loader.
СтурбованоOfTunbridgeWells

6
Я б до цього додав: читачі Oracle ніколи не блокують авторів, а письменники ніколи не блокують читачів. Я розумію, що це все ще відрізняється від встановлення за замовчуванням у SQL Server. Oracle ніколи не дозволяє читати не передані дані. Ви навряд чи використовуєте тимчасові таблиці в Oracle - робити все в одному великому операторі дуже часто набагато швидше. Часті комісії сповільнюватимуть велике завантаження. В ідеалі варто просто оформити одне зобов'язання, коли все буде зроблено.
a_horse_with_no_name

1
@a_horse_with_no_name ваше розуміння правильне
Джек Дуглас


10

Ми працюємо як з Oracle, так і з SQL Server, а наша ведуча DBA Мішель Малчер часто допомагає колегам в цьому переході. Виходячи з цього досвіду, вона написала книгу "Адміністрування баз даних Oracle для DBA Microsoft SQL Server (Oracle Press)". Мені сподобалась ця книга.

Я не впевнений, чи рекомендувати книгу колегою доречно для цього сайту. Я не звітую перед Мішель, я очолюю команду розробників.


2
Я пам’ятаю, що долучився до розмови про саморекламу на meta.stackoverflow.com і відповідав, що сіра зона навколо самореклами була в порядку, якщо це стосувалося питання. Джефф Етвуд погодився.
Занепокоєний

2
Я не працюю з Мішель, але мені ця книга дуже сподобалась. Я фактично знайшов такий спосіб пояснення - порівняння архітектури SQL Server з архітектурою Oracle цікавіше, ніж, скажімо, читання стандартної книги Oracle DBA.
РК Купала
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.