Oracle и SQL Server имеют ряд архитектурных и идиоматических различий, и несколько ключевых терминов по-разному используются в документации. Прошло довольно много лет с тех пор, как я это сделал, но некоторые из основных идиоматических различий:
Oracle не имеет прямого эквивалента tempdb. Глобальные временные таблицы являются постоянными объектами, и вы не создаете их на лету, как если бы вы использовали временную таблицу в SQL Server.
Идиоматический PL / SQL гораздо более процедурный, чем идиоматический T-SQL. С другой стороны, PL / SQL имеет функции для поддержки операций быстрого курсора, включая конструкции параллельных циклов. Часто результаты промежуточного курсора используются способами, подобными тем, для которых можно использовать временные таблицы в SQL Server. Посмотрите, как использовать «%», чтобы получить полиморфизм в типах переменных курсора.
SQL * Plus - это инструмент командной строки, похожий на SQLCMD. На ванильной установке это может быть все, что у вас есть. Если вам нужен инструмент с графическим интерфейсом, такой как SSMS, вы можете получить SQL Developer или сторонние инструменты, такие как TOAD. Жаба довольно дорогая.
Изучите роль сегментов отката (используется в Oracle MVCC) и радости ошибки «снимок слишком старый».
Получить учетную запись 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 (до 10g). Вам нужно создать таблицу (в правильном формате), в которую нужно вывести план, затем «ОБЪЯСНИТЕ ПЛАН» запрос в таблицу, чтобы получить план запроса. Затем вы можете получить план запроса обратно из таблицы. У всех и их собак есть любимые запросы плана запроса. Сделайте поиск в 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 . Это самый близкий продукт к построителю отчетов, который производит Oracle. Более поздние версии (Drake) поддерживают Oracle OLAP engine.
У Oracle раньше был продукт OLAP под названием Express. В какой-то момент они встроили его в ядро СУБД Oracle, храня его собственные структуры данных в непрозрачных двоичных объектах. Он не полностью совместим с Express и имеет собственный интерфейс с минимальной поддержкой сторонних интерфейсных инструментов OLAP.
Oracle BI Enterprise Edition - это то, что раньше было Siebel Analytics. У этого есть некоторая функциональность OLAP, но я не знаком с этим. Может быть, кто-то, кто использовал это, возможно, хотел бы прокомментировать. Без прямого признания того, что Siebel является совершенно отдельным продуктом от своего собственного инструментария BI, Oracle заявила, что «нет пути обновления» с Oracle BI Standard Edition до Enterprise Edition. Обратите внимание, что как Standard, так и Enterprise BI Suite являются отдельными продуктами и не связаны с базовой системой.
На практике ближе всего к SSAS, продаваемому Oracle, является Essbase (ранее Hyperion). Это отдельный продукт и не входит в базовую систему.
Неудивительно, что стратегия Oracle в области бизнеса рассматривается промышленными экспертами как нечто вроде собачьего завтрака.
Вероятно, есть и другие вещи, которые я не могу вспомнить об OTOH; Я добавлю их, как я думаю о них.