OceanBase 數據庫支持 Oracle 數據庫中絕大部分的 SQL 語法。
少數功能性缺失會報語法不支持的錯誤。
SELECT
支持大部分查詢功能,包括支持單、多表查詢;支持子查詢;支持內連接,半連接,外連接;支持分組、聚合;支持層次查詢;常見的概率,線性回歸等數據挖掘函數等。
支持如下集合操作:UNION、UNION ALL、INTERSECT、MINUS。
支持如下語法查看執行計劃:
EXPLAIN [explain_type] dml_statement;
explain_type:
BASIC
| OUTLINE
| EXTENDED
| EXTENDED_NOADDR
| PARTITIONS
| FORMAT = {TRADITIONAL| JSON}
dml_statement:
SELECT statement
| DELETE statement
| INSERT statement
| MERGE INTO statement
| UPDATE statement
INSERT
支持單行、多行插入,同時支持指定分區插入
支持 INSERT INTO ... SELECT ... 語句
支持單表和多表插入
UPDATE
支持單列和多列的更新
支持使用子查詢
支持集合更新
DELETE
支持單表和多表的刪除
TRUNCATE
支持完全清空指定表
并行查詢
支持類 Oracle 數據庫的并行查詢
OceanBase 數據庫支持 Auto DOP 功能,也可以手動通過 Hint 或者 Session 變量指定 DOP。
支持并行 DML
Hint
OceanBase 數據庫支持使用 Hint。Oracle 數據庫中有 72 個 Hint,目前 OceanBase 數據庫兼容 24 個。另外,OceanBase 數據庫特有的 Hint 有 23 個。
Hint 是一種 SQL 語句注釋,用于將指令傳遞給 OceanBase 數據庫優化器。通過 Hint 可以使優化器生成指定的執行計劃。
一般情況下,優化器會為用戶查詢選擇最佳的執行計劃,不需要用戶使用 Hint 指定,但在某些場景下,優化器生成的執行計劃可能無法滿足用戶的要求,這時就需要用戶使用 Hint 來主動指定并生成特殊的執行計劃。
Hint 應該盡量少用,在收集了相關表的統計信息并且在沒有 Hint 的情況下使用 EXPLAIN PLAN 語句評估了優化器計劃之后,才建議用戶謹慎考慮使用 Hint。更改數據庫條件以及在后續版本中增強查詢性能可能會導致您代碼中的 Hint 對性能產生重大影響。