Oracle18c带来惊人的变革(oracle18c很大)
随着Oracle18c的发布,它带来了许多惊人的变革,这是Oracle迈出的一大步。Oracle18c已经成为了业界最受欢迎的数据库之一,它的新特性和改进已经让许多用户感到惊喜。在这篇文章中,我们将详细讨论Oracle18c的变化,并了解如何使用它增强数据库的安全性、可伸缩性和可靠性。
1. 自动机器学习 (AML)
Oracle18c引入了自动机器学习 (AML),这是一种新的功能,它可以实现自动模型选择和模型部署。使用自动机器学习,你可以通过向系统提供一些数据和目标变量来选择适当的模型,并自动进行训练。这在一定程度上可以提高模型的准确性和效率,同时也节约了时间和精力。
以下是一个使用Oracle AML对数据集进行分析和预测的示例。我们将使用UCI汽车数据集来预测车辆价格。假设我们已经将数据集导入到Oracle数据库中,我们可以使用以下几行代码来训练模型:
“`python
BEGIN
DBMS_AUTOML.CREATE_MODEL(
model_name => ‘CAR_PRICE_MODEL’,
data_table_name => ‘CARS_DATA’,
target_column => ‘PRICE’,
metric_name => ‘RMSE’,
max_models => 5,
auto_compute => TRUE,
auto_drop => TRUE,
dbms_output => TRUE
);
END;
/
在这里,我们使用DBMS_AUTOML.CREATE_MODEL过程来创建一个名为CAR_PRICE_MODEL的模型。输入数据表是CARS_DATA,目标列是PRICE(我们要预测的列),评估标准是均方根误差(RMSE),最多创建5个模型。auto_compute和auto_drop参数默认为True,这表示Oracle将自动选择和部署最佳模型。您可以在SQL Developer中使用以下查询来查看模型的准确性:
```sqlSELECT * FROM USER_AUTO_ML_MODELS WHERE ALGO_SCORE = (SELECT MAX(ALGO_SCORE) FROM USER_AUTO_ML_MODELS);
2. 数据库安全性增强
Oracle18c引入了多种新功能来增强数据库的安全性。其中最显著的是Oracle Data Vault,它可保护数据库中的敏感信息免受非授权访问。它通过管理访问权限来确保数据的完整性和保密性。
Data Vault的实现非常简单,只需要运行以下几行代码:
“`sql
CREATE USER vault_admin IDENTIFIED BY ;
GRANT CREATE SESSION, CREATE PROCEDURE, CREATE TABLE, CREATE TRIGGER, CREATE VIEW TO vault_admin;
EXECUTE DBMS_MACADM.CREATE_POLICY(policy_name => ‘MY_VAULT_POLICY’, description => ‘DataVault Policy’);
EXECUTE DBMS_MACADM.ADD_AUTHORITY(authority_name => ‘MY_VAULT_AUTHORITY’, roles => ‘VAULT_ADMIN’);
EXECUTE DBMS_MACADM.ADD_USER(user_name => ‘VAULT_USER’, user_description => ‘Vault User’);
EXECUTE DBMS_MACADM.GRANT_AUTHORITY(authority_name => ‘MY_VAULT_AUTHORITY’, users => ‘VAULT_USER’);
这里,我们创建了一个用户VAULT_ADMIN,并向他授予了创建会话、创建过程、创建表、创建触发器、创建视图的权限。接下来,我们创建了一个名为MY_VAULT_POLICY的策略,并为其添加了一个名为MY_VAULT_AUTHORITY的权限。我们还创建了一个名为VAULT_USER的用户,并将其授权给MY_VAULT_AUTHORITY权限。这样,我们就创建了一个Vault,它可以保护数据库中包含敏感信息的表、视图和存储过程。
3. 可伸缩性改进
Oracle18c也大大改善了数据库的可伸缩性。它引入了一个新的Sharding特性,允许数据库在多个节点上运行。这提高了数据库的性能和可扩展性,特别是在处理大量数据时。Sharding可以将全局数据划分为若干数据块,每个数据块存储在不同的节点上。这样,每个节点都可以独立地处理数据块,从而提高了性能。
以下是一个使用Oracle Sharding的简单示例。假设我们要在三个节点上分片名为SALES的表。我们可以使用以下命令来创建分区键:
```sqlCREATE TABLE SALES (…)
PARTITION BY HASH (customer_id)PARTITIONS 3;
在这里,我们使用HASH分区方式将表SALES分为三个部分。然后,我们在三个节点上启动数据库实例,并使用以下命令将其节点添加到Shard中:
“`sql
ALTER SHARD ADD INSTANCE ‘node1.example.com:1521/ORCL’;
ALTER SHARD ADD INSTANCE ‘node2.example.com:1521/ORCL’;
ALTER SHARD ADD INSTANCE ‘node3.example.com:1521/ORCL’;
这样,我们就可以通过扩展节点来提高数据库的性能和可伸缩性。
4. 优化器改进
Oracle18c的优化器也得到了改进,它现在可以根据查询的数据量调整查询执行计划。这样,即使数据量很大,查询也可以以最有效的方式进行优化。
以下是一个使用Oracle18c优化器的示例查询。我们要查找单价低于10美元的所有商品:
```sqlSELECT * FROM PRODUCTS WHERE PRICE
在这里,优化器可以根据数据量调整查询执行计划。如果数据量很小,它可以选择使用索引扫描来查找商品,但如果数据量很大,它可以选择使用分区扫描来提高查询效率。这样,优化器可以针对每个查询自动选择最佳执行计划。
总结
Oracle18c的变革是惊人的,它为数据库用户带来了许多新功能和改进。其中最显著的是自动机器学习、数据库安全性增强、可伸缩性改进和优化器改进。如果您还没有尝试过Oracle18c,请立即下载并体验新功能!