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中使用以下查询来查看模型的准确性:

```sql
SELECT * 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的表。我们可以使用以下命令来创建分区键:

```sql
CREATE 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美元的所有商品:

```sql
SELECT * FROM PRODUCTS WHERE PRICE

在这里,优化器可以根据数据量调整查询执行计划。如果数据量很小,它可以选择使用索引扫描来查找商品,但如果数据量很大,它可以选择使用分区扫描来提高查询效率。这样,优化器可以针对每个查询自动选择最佳执行计划。

总结

Oracle18c的变革是惊人的,它为数据库用户带来了许多新功能和改进。其中最显著的是自动机器学习、数据库安全性增强、可伸缩性改进和优化器改进。如果您还没有尝试过Oracle18c,请立即下载并体验新功能!


数据运维技术 » Oracle18c带来惊人的变革(oracle18c很大)