MS SQL Server và Oracle là 2 trong số các hệ thống
quản lý cơ sở dữ liệu quan hệ (Relational Database Management Systems - RDBMS)
hiệu quả. Vậy MS SQL Server và Oracle và gì? Nên dùng cái nào? Bài viết dưới
đây sẽ giúp bạn so sánh MS SQL Server và Oracle để đưa ra lựa chọn đúng đắn
nhất dành cho mình.
Những tiến bộ của công nghệ đáp ứng được phần nào nhu cầu sử
dụng các giao dịch trực tuyến cho người dùng. Cụ thể là mua sắm trực tuyết hoặc
bất kỳ hình thức thanh toán hóa đơn nào hầu hết đều có thể thực hiện thông qua
internet.
Dần dần, người dùng bắt đầu sử dụng cơ sở dữ liệu quan hệ
(RDB) để cộng tác bằng cách sử dụng nhiều dữ liệu hơn mà không phải sắp xếp lại
dữ liệu cho các mục đích khác nhau.
Để quản lý cơ sở dữ liệu quan hệ (RDB), các chuyên gia cơ sở
dữ liệu đã tạo ra một giải pháp quản lý dữ liệu độc quyền cho các các sở dữ
liệu quan hệ này, giải pháp này được gọi là hệ thống quản lý cơ sở dữ liệu quan
hệ (Relational Database Management Systems -
RDBMS).
Một số ví dụ về hệ thống quản lý cơ sở dữ liệu quan hệ -
RDBMS như MS Access, Oracle, IBM
DB2, MS SQL Server, Sybase và My SQL. Đó là một trong những RDBMS tốt nhất, đáp ứng nhu cầu của
người dùng.
Chúng ta sẽ cùng so sánh các tính năng của 2 CSDL Oracle và
SQL Server:
Cú pháp và ngôn ngữ truy vấn
Cả MS SQL Server và Oracle sử dụng ngôn ngữ truy vấn mang
tính cấu trúc (Structured Query Language)
để lấy dữ liệu từ các cơ sở dữ liệu tương ứng. MS SQL Server sử dụng T-SQL, nghĩa là Transact-SQL và Oracle sử
dụng PL/SQL, tức là Procedural SQL.
Công ty sở hữu
MS SQL Server là sản phẩm của Microsoft Corporation và được biết đến với dịch vụ khách hàng
thông qua các diễn đàn như MSDN và Connect Website, nơi người dùng có thể tiếp
cận team dịch vụ khách hàng dễ dàng khi gặp phải bất kỳ vấn đề nào. Ngay cả khi người dùng bị mắc kẹt, họ có thể dễ dàng liên hệ
với kỹ thuật viên để được giúp đỡ.
Oracle ngoài các diễn đàn miễn phí họ còn có kho Oracle Support (tính phí) với hàng tỷ case vượt trôi so với MS SQL Server. Các tài liệu docs.oracle.com cũng rất đa dạng, phong phú từ cơ bản đến master để tự học và phát triển.
Oracle ngoài các diễn đàn miễn phí họ còn có kho Oracle Support (tính phí) với hàng tỷ case vượt trôi so với MS SQL Server. Các tài liệu docs.oracle.com cũng rất đa dạng, phong phú từ cơ bản đến master để tự học và phát triển.
Tính phức tạp của các cú pháp
Các cú pháp được sử dụng trong MS SQL Server tương đối đơn
giản và dễ sử dụng. MS SQL Server cho phép đóng gói procedure, đến mức độ nào đó.
Với Oracle, người dùng có thể tạo các gói bằng cách nhóm các
procedure. Các cú pháp phức tạp hơn một chút nhưng hiệu quả
hơn.
Lỗi xử lý
MS SQL Server cung cấp các thông báo lỗi bằng một định dạng
được xác định trước. Thông báo lỗi của Oracle được hiển thị rõ ràng hơn và xử
lý dễ dàng hơn. Nhưng người dùng cần phải cẩn thận trong việc xác định các
deadlock vì cả MS SQL Server và Oracle đều gây rắc rối cho người dùng trong
trường hợp như vậy.
Quản lý giao dịch
MS SQL Server khóa toàn bộ khối hồ sơ được sử dụng trong một
giao dịch và thực thi từng lệnh một. Vì hồ sơ bị chặn và không cho phép người
khác sử dụng, MS SQL Server có thể tự do sửa đổi nó trước khi nhận được lệnh
Commit. Oracle không bao giờ sửa đổi dữ liệu cho đến khi nhận được lệnh Commit
từ DBA, trong suốt một giao dịch.
Rollback giao
dịch
Trong một giao dịch trong MS SQL Server không được phép roll
back lại dữ liệu vừa thay đổi nhưng chưa commit, nhưng trong Oracle thì được phép (lệnh rollback).
Các giao dịch không hành công
Trong trường hợp giao dịch thất bại, MS SQL Server phải đảo
ngược tất cả các hoạt động đã được thực hiện cho giao dịch đó. Điều này là do
MS SQL Server đã thực hiện những thay đổi bằng cách chặn hồ sơ.
Ngược lại Oracle không phải đảo ngược như vì tất cả những
thay đổi đã được thực hiện trên bản sao chứ không phải trên bản gốc.
Truy cập đồng
thời và thời gian chờ (wait)
Trên MS SQL Server, khi đang thực hiện quá trình ghi không
được phép đọc, và điều này dẫn đến tình trạng là thời gian chờ lâu.
Trong khi quá trình ghi đang diễn ra trên Oracle, nó cũng cho
phép người dùng đọc bản sao cũ trước khi cập nhật. Do đó, Oracle có thời gian
chờ ngắn hơn nhưng bạn không được phép ghi.
Hỗ trợ nền tảng
MS SQL Server chỉ có thể chạy trên một nền tảng duy nhất là
Windows. Do thiếu sự hỗ trợ nền tảng, nên MS SQL Server không phù hợp với các
doanh nghiệp hoạt động trên toàn thế giới sử dụng các hệ điều hành khác nhau.
Oracle có thể chạy trên hầu hết nền tảng khác nhau như Solaris, AIX, Linux, Debin, Windows, MACOS,…. Nó cung cấp hỗ trợ nền tảng
tốt, do đó, Oracle có thể được sử dụng trong các doanh nghiệp sử dụng nhiều hệ
điều hành khác nhau.
Khóa (lock)
Khóa trang là một khái niệm trong MS SQL Server được sử dụng
khi nó cần nhiều chuỗi của một trang được chỉnh sửa. MS SQL Server khóa các
trang có cùng kích thước cho mỗi sửa đổi, nhưng các chuỗi chưa được chỉnh sửa
cũng bị khóa theo mà không có lý do chính đáng. Vì vậy, người dùng khác phải
đợi cho quá trình chỉnh sửa kết thúc.
Ngược lại Oracle không khóa các trang nhưng thay vào đó nó
tạo ra một bản sao trong quá trình chỉnh sửa, sửa đổi nội dung. Do đó, người
dùng khác không cần phải chờ cho đến khi quá trình chỉnh sửa nội dung hoàn tất.
Phân bố bộ nhớ để phân loại
MS SQL Server sử dụng global
memory allocation và không thể thay đổi bởi DBA khi phân loại hoặc
bộ nhớ đệm cho hiệu suất tốt hơn. Với thiết lập này, những lỗi của người dùng
có thể tránh được. Oracle sử dụng dynamic memory allocation, do đó hiệu suất
được cải thiện, nhưng tỉ lệ xuất hiện lỗi của người dùng là cao khi bạn “xâm
nhập” vào DB để cải thiện hiệu suất của nó.
Index (chỉ mục)
MS SQL Server có rất ít tùy chọn để phân loại các bảng với
các chỉ mục. Lý do là bởi vì MS SQL Server thiếu Bitmap, các chỉ số dựa trên
các chức năng, và key đảo ngược (reverse key). Oracle sử dụng Bitmap, các chỉ
mục dựa trên các chức năng và các key đảo ngược, cung cấp các tùy chọn tốt hơn
và hiệu suất tốt hơn.
Table Partition
MS SQL Server thời kỳ đầu không cho phép phân chia các bảng lớn, điều này
khiến cho việc quản lý dữ liệu trở nên khó khăn, tuy nhiên các phiên bản mới đã hỗ trợ tính năng Table partition. Oracle giúp cho việc quản lý dữ
liệu dễ dàng hơn bằng cách cho phép phân đoạn các bảng lớn với tính năng table partition rất tuyệt vời. Có thể chuyển (move), exchange, drop, truncate,.. với partition.
Tối ưu hoá truy vấn
Tối ưu hóa các truy vấn trong MS SQL Server bị thiếu, nhưng
trong Oracle thì có đầy đủ các tính năng để tối ưu hóa các câu lệnh dù phức tạp đến đâu.
Triggers
Cả hai đều cho phép Triggers,
nhưng trong MS SQL Server chủ yếu sử dụng After
Triggers. Trong Oracle, cả Before
Triggers và After
Triggers được sử dụng như nhau. Việc sử dụng Triggers được yêu cầu
trong các môi trường thời gian thực và sự hỗ trợ này để các cơ sở dữ liệu thích
hợp hơn.
Liên kết các
file bên ngoài
MS SQL Server sử dụng các máy chủ liên kết để đọc hoặc ghi
các file bên ngoài. Ngược lại, Oracle sử dụng Java để làm điều đó.
Cả MS SQL Server và Oracle đều có một tùy chọn để liên kết
các file như thế, chỉ có điều là cách tiếp cận khác nhau.
Giao diện
Giao diện đơn giản và thân thiện với người dùng là tính năng
tuyệt vời của MS SQL Server. Nó tự động tạo ra các dữ liệu thống kê và tự
chỉnh. Ngoài ra, với nguồn dữ liệu có sẵn lớn, người dùng có thể dễ dàng tìm
hiểu và tự học MS SQL Server. Ngược lại giao diện người dùng của Oracle phức
tạp hơn một chút nhưng giao diện Pro hơn, đầy đủ các tính năng cho quản trị sử dụng, đặc biệt với Oracle Cloud 13c thì việc quản trị đơn giản, thuận tiện, trực quan hơn bất kỳ công cụ nào khác.
Sử dụng tốt nhất
Khi so sánh MS SQL Server với Oracle: MS SQL Server là lựa
chọn tốt nhất cho các cơ sở dữ liệu nhỏ hơn,
bởi nó sẽ tốn rất nhiều thời gian cho các cơ sở dữ liệu có kích thước lớn hơn.
Nếu bạn có nhiều thời gian và có thể chờ đợi được thì có thể lựa chọn MS SQL
Server.
Oracle vì hỗ trợ cơ sở dữ liệu lớn hơn, thời gian chờ ít hơn, hoạt động tối ưu, hiệu năng cao hơn với các hệ thống lớn, điều này đã được các doanh nghiệp trên toàn thế giới công nhận từ khi Oracle đưa ra phiên bản đầu tiên đến nay. Với tính năng Pluggable từ Oracle DB 12c lại phù hợp với dữ liệu nhỏ, trung bình. Do đó cơ sở dữ liệu Oracle chính là sự lựa chọn thông minh, tinh tế mà bạn đang tìm kiếm cơ sở dữ liệu cho doanh nghiệp của bạn, từ doanh nghiệp lớn, đến doanh nghiệp nhỏ.
Oracle vì hỗ trợ cơ sở dữ liệu lớn hơn, thời gian chờ ít hơn, hoạt động tối ưu, hiệu năng cao hơn với các hệ thống lớn, điều này đã được các doanh nghiệp trên toàn thế giới công nhận từ khi Oracle đưa ra phiên bản đầu tiên đến nay. Với tính năng Pluggable từ Oracle DB 12c lại phù hợp với dữ liệu nhỏ, trung bình. Do đó cơ sở dữ liệu Oracle chính là sự lựa chọn thông minh, tinh tế mà bạn đang tìm kiếm cơ sở dữ liệu cho doanh nghiệp của bạn, từ doanh nghiệp lớn, đến doanh nghiệp nhỏ.
BẢNG SO SÁNH MS SQL SERVER VÀ ORACLE
MS SQL Server
|
Oracle
|
Sử dụng
T-SQL
|
Sử dụng
PL/SQL
|
Thuộc
Microsoft Corporation
|
Thuộc
Oracle Corporation
|
Cú pháp
đơn giản và dễ hiểu
|
Cú pháp
phức tạp hơn một chút
|
Hiển thị
thông báo lỗi ở một định dạng xác định trước
|
Hiển thị
thông báo lỗi rõ ràng hơn
|
Lỗi giao
dịch yêu cầu dữ liệu được sửa đổi trở lại bản gốc trước khi thực hiện quá
trình ghi
|
Quá
trình xử lý đơn giản hơn nhiều vì các thay đổi được thực hiện trên một bản
sao
|
Các giá
trị thay đổi trước khi nhận lệnh Commit
|
Các giá
trị không đổi trước khi nhận lệnh Commit
|
Sử dụng
tính năng chặn trang và không cho phép đọc trong quá trình chặn trang
|
Sử dụng
bản sao của hồ sơ trong quá trình chỉnh sửa và cho phép đọc dữ liệu gốc trong
quá trình chỉnh sửa
|
Roll
Back không được cho phép trong một giao dịch
|
Roll
Back được phép
|
Hỗ trợ
khách hàng tốt
|
Hỗ trợ
khách hàng tốt nhưng kỹ thuật viên không có nhiều kinh nghiệm
|
Chỉ chạy
trên nền tảng Windows
|
Chạy
trên nhiều nền tảng khác nhau
|
Khóa các
trang cùng kích thước
|
Kích
thước khóa thay đổi theo nhu cầu
|
Sử dụng
Global memory allocation và ít xâm nhập DBA. Do đó tỉ lệ lỗi người dùng thấp
|
Sử dụng
Dynamic memory allocation và xâm nhập DBA nhiều hơn. Do đó tỉ lệ lỗi người
dùng cao hơn
|
Không sử
dụng Bitmap, các chỉ số dựa trên chức năng và key reverse
|
Sử dụng
Bitmap, các chỉ số dựa trên chức năng và key reverse
|
Tối ưu
hóa truy vấn bị thiếu
|
Sử dụng
tối ưu hóa truy vấn Star
|
Cho phép
triggers và sử dụng After triggers
|
Sử dụng
cả After và Before triggers
|
Sử dụng
liên kết máy chủ để đọc và ghi các file bên ngoài
|
Sử dụng
Java
|
Giao
diện người dùng đơn giản
|
Giao
diện phức tạp hơn nhưng đầy đủ và Pro hơn
|
Phù hợp
với các dữ liệu nhỏ, trung bình
|
Phù hợp
với các dữ liệu lớn, mức enterprise
Với Pluggable từ 12c lại phù hợp với dữ liệu nhỏ, trung bình |
---------------------------
* Dữ liệu trong thời đại 4.0 là "TRÁI TIM" của doanh nghiệp. Quản
trị cơ sở dữ liệu (Database Administration - DBA) là
ngành có lương cao nhất trong ngành
IT và đầy tiềm năng trong thời đại 4.0. Oracle là cơ sở dữ liệu hàng đầu trên thế giới và được rất nhiều doanh nghiệp lớn trên thế giới và Việt Nam sử dụng.
* Bạn có
mong muốn từng bước
trở thành chuyên
gia DBA không? Nếu câu trả lời là CÓ thì hãy nhanh chóng đăng
ký sở hữu trọn đời
khóa học online "Quản trị cơ sở dữ
liệu cơ bản" của tôi tại
Unica (bạn có thể xem trên điện thoại, máy tính bảng, PC vào bất kỳ lúc nào chỉ cần có mạng Internet). Hiện tại tôi đang khuyến mại cho 100 bạn đăng ký đầu tiên giảm giá từ 2400K còn 799K, CAM KẾT HOÀN TIỀN 100% nếu học xong không có kết quả:
* Môn 1: Quản trị Oracle 12 cơ bản, giảm giá 70% HÔM NAY cho 100 bạn
đầu tiên từ 2tr4 còn
799K theo link: https://bit.ly/3d2ofqZ (khoá này học ở
Oracle hãng là 1.500$), chuyển khoản còn 699K
* Môn 2: Quản trị Linux trong 21h, cũng giảm giá 70% HÔM NAY cho 100 bạn đầu tiên từ 2tr4 còn
799K theo link: https://bit.ly/3e7gwJw, chuyển
khoản còn 699K
* Combo1: Cho 2 khóa học (Quản trị Oracle 12 cơ bản + Quản trị Linux
trong 21h) giá 1.200K chuyển khoản
--> Thông tin TÀI KHOẢN:
- Trần Văn Bình, STK
1920767736012, Ngân hàng Techcombank, chi nhánh Thăng Long
- Nội dung: Tên + (Môn 1 hoặc Môn
2 hoặc Combo) +
Số tiền, sau đó chụp
màn hình
chuyển khoản
gửi về email tranbinh48ca@gmail.com (ví dụ nội dung: TranVanBinh Combo1 1200K, TranVanBinh
Mon1 799K, TranVanBinh Mon2 799K,
---------------------------
* KẾT NỐI VỚI TRẦN VĂN BÌNH:
📧 Mail: tranbinh48ca@gmail.com
☎️ Mobile: 0902912888
🅿️ Website: http://www.tranvanbinh.vn
🅿️ Fanpage Facebook: https://www.facebook.com/TranVanBinhOfficial
👨 Facebook: https://www.facebook.com/tranvanbinhmaster
👨Twitter: https://twitter.com/TranVan37761232
🎬 Youtube: http://bit.ly/2YIZKtc
👨👩👧👦 Group FB: https://www.facebook.com/groups/413698089218929
👨 Messenger: https://m.me/101036604657441
⚡️ Skype: tranbinh48ca
👨 Blogger: https://tranvanbinhmaster.blogspot.com
# Bạn lựa chọn Oracle Database hay Microsoft SQL Server?