Oracle i SQL Server mają wiele różnic architektonicznych i idiomatycznych, a kilka kluczowych fragmentów terminologii jest inaczej używanych w dokumentacji. Minęło kilka lat, odkąd to zrobiłem, ale niektóre z głównych różnic idiomatycznych to:
Oracle nie ma bezpośredniego odpowiednika tempdb. Globalne tabele tymczasowe są trwałymi obiektami i nie tworzy się ich w locie, tak jak w przypadku tabeli tymczasowej w programie SQL Server.
Idiomatic PL / SQL jest znacznie bardziej proceduralny niż idiomatyczny T-SQL. Z drugiej strony, PL / SQL ma funkcje wspierające szybkie operacje kursora, w tym konstrukcje równoległej pętli. Często wyniki kursora pośredniego są używane w sposób podobny do rzeczy, w których można by użyć tabel tymczasowych w SQL Server. Sprawdź, jak użyć „%”, aby uzyskać polimorfizm w typach zmiennych kursora.
SQL * Plus to narzędzie wiersza polecenia podobne do SQLCMD. W przypadku instalacji waniliowej może to być wszystko, co masz do dyspozycji. Jeśli potrzebujesz narzędzia GUI, takiego jak SSMS, możesz uzyskać SQL Developer lub narzędzia innych firm, takie jak TOAD. TOAD jest dość drogi.
Dowiedz się o roli segmentów wycofywania (używanych w MVCC Oracle) i radości z błędu „migawka za stara”.
Załóż konto Metalink, jeśli to możliwe.
Przeczytaj przewodnik po pojęciach. Ma wiele użytecznych informacji startowych.
Przestrzenie tabel są z grubsza równoważne aplikacjom grup plików.
SQL i dialekt SQL osadzone w PL / SQL to nie to samo w Oracle.
Oracle do niedawna nie obsługiwał rekurencyjnych CTE. Możesz wykonywać zapytania rekurencyjne za pomocą CONNECT BY.
Przeczytaj dokumentację dotyczącą RMAN, aby dowiedzieć się, jak tworzyć kopie zapasowe. Możesz wykonać kilka ciekawych sztuczek, takich jak scalanie różnicowych kopii zapasowych w jedną, odtwarzalną kopię zapasową.
Słownik danych systemowych zawiera wersje tabel „ALL”, „USER” i „DBA”. „USER_ ” pokazuje obiekty należące do loginu. „ALL_ ” pokazuje wszystkie obiekty, które login może odczytać. „DBA_ *” jest widokiem globalnym, ale aby to zobaczyć, musisz mieć odpowiednie uprawnienia. Prawdopodobnie będziesz używał słownika danych częściej w Oracle niż w SQL Server, więc poznaj go.
Tabele klastrowe w Oracle są nazywane „tabelami indeksowanymi”. „Tabele klastrowe” w Oracle odnoszą się do zupełnie innej funkcji. W Oracle klastrowana tabela to funkcja, która umożliwia fizyczne przechowywanie tabel głównych / szczegółowych na podstawie wspólnego klucza. Ta funkcja nie jest powszechnie używana.
Widoki indeksowane w Oracle nazywane są „widokami zmaterializowanymi”. Działają nieco inaczej, z wystarczającą liczbą niuansów, aby zasłużyć na własne pytanie.
Oracle nie ma koncepcji równoważnej z „bazą danych” w SQL Server. W Oracle schemat jest tylko właścicielem niektórych obiektów bazy danych.
PL / SQL ma jawną strukturę modułów zwaną „pakietami”.
Spójrz na użycie sekwencji zamiast kolumn tożsamości.
Uzyskiwanie planu zapytań jest nieco trudniejsze w starszych wersjach Oracle (wcześniejszych niż 10g). Musisz utworzyć tabelę (odpowiedniego formatu), aby zrzucić plan, a następnie „WYJAŚNIJ PLAN” zapytania do tabeli, aby uzyskać plan zapytania. Następnie możesz odzyskać plan zapytań z powrotem z tabeli. Wszyscy i ich pies mają ulubione zapytania dotyczące planu zapytań. Wykonaj wyszukiwanie w Google i znajdź je, a następnie wypróbuj je do smaku. 10g dodał pakiet o nazwie dbms_xplan , który upraszcza pracę z planami zapytań.
Jeśli korzystasz z Oracle na hoście unixowym lub linuksowym, posiadanie praktycznej wiedzy na temat skryptowania powłoki nie zaszkodzi.
Oracle obsługuje transakcje autonomiczne - możesz zatwierdzić wewnętrzną transakcję autonomiczną i oczekiwać, że pozostanie ona zatwierdzona, jeśli jednostka nadrzędna wycofa się. Transakcje zagnieżdżone programu SQL Server nie są prawdziwymi transakcjami zagnieżdżonymi i mają inną semantykę. Możesz emulować to zachowanie za pomocą procedury składowanej CLR w SQL Server, otwierając niezależne połączenie i wykonując przez to autonomiczną operację.
Oracle zawiera mniej narzędzi BI od razu po wyjęciu z pudełka, chociaż Oracle sprzedaje serwery OLAP, narzędzia raportowania i narzędzia ETL.
Oracle dołącza narzędzie do ładowania zbiorczego o nazwie SQL * Loader, które działa podobnie do bcp.
Najbliższym odpowiednikiem SSIS jest Oracle Warehouse Builder (OWB), ale jest to osobny element i nie jest dołączany do systemu podstawowego.
Oracle tworzy narzędzie do raportowania o nazwie Oracle Reports , ale nie jest ono również dostarczane w pakiecie z systemem podstawowym. Jest to najbliższy odpowiednik Reporting Services.
Oracle tworzy również narzędzie ROLAP o nazwie Discoverer . Jest to najbliższy produkt do Konstruktora raportów produkowany przez Oracle. Nowsze wersje („Drake”) obsługują silnik OLAP Oracle.
Oracle miał kiedyś produkt OLAP o nazwie Express. W pewnym momencie wbudowali go w główny silnik Oracle DBMS, przechowując jego rodzime struktury danych w nieprzezroczystych obiektach blob. Nie jest w pełni kompatybilny z Express, i ma zastrzeżony interfejs z niewielkim wsparciem ze strony zewnętrznych narzędzi OLAP.
Oracle BI Enterprise Edition to kiedyś Siebel Analytics. Ma to pewne funkcje OLAP, ale nie jestem z tym zaznajomiony. Może ktoś, kto z niego skorzystał, może komentować. Bez bezpośredniego przyznania, że Siebel był całkowicie odrębnym produktem od własnego narzędzia BI, Oracle stwierdził, że „nie ma ścieżki uaktualnienia” z Oracle BI Standard Edition do Enterprise Edition. Należy pamiętać, że zarówno pakiet Standard BI, jak i pakiet Enterprise BI są oddzielnymi produktami i nie są dołączane do systemu podstawowego.
W praktyce najbliższą SSAS sprzedawaną przez Oracle jest Essbase (wcześniej Hyperion). Jest to oddzielny produkt i nie jest dołączany do systemu podstawowego.
Nic dziwnego, że strategia BI Oracle jest postrzegana przez ekspertów w branży jako coś z psiego śniadania.
Są prawdopodobnie inne rzeczy, których nie mogę myśleć o OTOH; Dodam je tak, jak o nich myślę.