10-Oracle 23 ai Vector Search 概述和参数

news2025/6/12 17:35:35

一、Oracle AI Vector Search 概述

企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation :RAG)功能,RAG能够将LLM的生成能力与知识库的精准资料库进行检索结合,将大模型部署在内部同时将私有的数据进行LLM的检索避免泄露企业专用的数据同时提高的准确性。于是如何将数据存入向量数据库以及向量查询等这些基本功能变得必备和重要。

Oracle 23ai 虽然目前没有OP发布,提供测试的free 已经更新至23.8,AI Vector Search 在原有的Oracle强大的基础功能上专为人工智能进行增加工作负载模块,并允许根据语义搜索而不再是关键字查询数据。

单一数据库的简单性

轻松将相似性搜索与关系、文本、JSON、空间和图形数据类型相结合,从而增强应用 — 所有这些都在一个数据库中完成。

用自然语言与业务数据“对话”

使用 RAG 对您的私有业务数据进行自然语言搜索,为您所选的 LLM 提供指导。

以自己的方式开发 AI 应用

集成自己喜爱的开发工具、AI 框架和语言构建 AI 应用。

专为企业打造的 AI

轻松构建关键任务 AI 应用。利用工业级功能,实现可扩展性、性能、高可用性和安全性。

二、为什么是Oracle AI Vector Search

Oracle AI Vector Search 的最大优势之一是将非结构化数据搜索可以与业务数据的关系搜索相结合在一个系统上实现。

这不仅功能强大而且效果明显提升,因为不需要添加专门的向量数据库或者是使用其他数据库添加向量组件后拼接而成,随着系统版本和组件的升级又要新一轮的升级磨合,融合成一体,从而避免了多个系统之间数据碎片化。

例如:一个应用程序,该应用程序需要找到一个查询的房子拍摄的照片相似的房子,该房子位于选定的区域,并且具有设定了预计的预算范围。在这种情况下,要找到一个好的匹配项,需要将语义图片搜索与业务数据搜索相结合,从前的sql要做多少次的相似度查询呢。

使用 Oracle AI Vector Search模拟,创建下表:

CREATE TABLE house_for_sale (house_id     NUMBER,
                             price        NUMBER,
                             city         VARCHAR2(400),
                             house_photo  BLOB,
                             house_vector VECTOR);

使用上表,查询解答基本问题:

SELECT house_photo, city, price
FROM   house_for_sale
WHERE  price <= :input_price AND
       city  = :input_city
ORDER BY VECTOR_DISTANCE(house_vector, :input_vector);

从23 ai开始,AI Smart Scan 自动加速 Oracle 数据库 23ai AI Vector 通过优化进行搜索,提供低延迟并行扫描海量矢量数据。

Oracle Exadata 系统24.1.0早已引入了 AI Smart Scan,这是一组 特定于 Exadata 的优化能够提高各种 AI 向量查询作(按数量级)。利用超快的 Exadata RDMA 内存 (XRMEM) 和 Exadata Smart Flash Cache 的 Cache,并执行矢量距离 数据源的计算和 top-K 筛选,避免不必要的网络数据传输和数据库服务器处理。期待Oracle 23 ai的OP发布。

三、Oracle AI Vector Search相关参数-现在是23.8,新版可能新增参数

inmemory_deep_vectorization,

spatial_vector_acceleration,

vector_index_neighbor_graph_reload,

vector_memory_size ,

vector_query_capture

3.1 inmemory_deep_vectorization

功能定位:

此参数控制内存深度矢量化技术的启用状态,是Oracle针对分析型查询的SIMD(单指令多数据)硬件加速优化。它通过并行处理数据块显著提升复杂操作(如多表连接、聚合计算)的性能。通过内存矢量化技术提升分析查询性能,支持多级操作,是实时分析的核心引擎。

技术背景与增强:

在Oracle 21c中首次引入,但仅支持单级连接操作。

23ai的突破:支持多级哈希连接和内存分组聚合,可自动优化查询计划中的多连接键和聚合流水线。

默认启用(TRUE),无需修改SQL即可加速实时分析场景。

应用场景:适用于数据仓库、实时报表等需要高性能计算的分析负载,例如金融交易分析或大规模行为聚合等类。

3.2 spatial_vector_acceleration

功能定位:

旨在加速空间向量计算,可能利用SIMD或GPU硬件优化地理空间数据(如坐标、几何图形)的处理效率。专注空间数据的高效处理,与AI向量搜索协同支持地理信息等非结构化数据的快速检索

技术关联:

Oracle 23ai强化了对多模型数据的统一支持,包括空间数据(如地理信息、图像坐标)的向量化存储与检索。

结合AI Vector Search能力,空间数据可被编码为高维向量,实现基于相似性的快速检索(例如查找邻近地理位置)。

典型应用:

适用于地理信息系统(GIS)、物流路径优化、医疗影像分析等需高频计算空间关系的场景。

3.3 vector_index_neighbor_graph_reload参数

Oracle 23ai 中的 vector_index_neighbor_graph_reload 参数用于控制基于 HNSW 算法的邻居图索引在数据库实例重启后的自动重载行为。

该参数通过后台任务机制,实现 HNSW 索引的自动重建和加载,从而减少人工干预并提升系统可用性。

vector_index_neighbor_graph_reload 参数为RESTART(默认值)时,实例重启时HNSW索引会自动加载。

vector_index_neighbor_graph_reload 参数为OFF时,实例重启时HNSW索引不会自动加载。

SYS@FREE> alter session set container=cdb$root;

Session altered.

SYS@FREE> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FREEPDB1                       READ WRITE NO
SYS@FREE> show parameter vector_index_neighbor_graph_reload;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
vector_index_neighbor_graph_reload   string      RESTART
SYS@FREE>
3.4 vector_memory_size参数

23ai版本中添加了一个新的内存结构:向量内存池(Vector Memory Pool),主要用于存储Hierarchical Navigable Small World (HNSW)向量索引和相关元数据,同时也用于加速Inverted File Flat (IVF) 索引的创建以及对具有IVF索引的基表的DML操作。

向量内存池(Vector Memory Pool)位于SGA中,Oracle 23 ai 是通过 vector_memory_size参数控制这块内存的大小。

初次CDB级别指定当前向量池的大小(vector_memory_size)时,数据库初始化时并未分配相关内存,不能动态调整。需要通过SCOPE=SPFILE手工指定大小。之后需要 shutdown immediate ,startup实例,即可动态调整PDB的vector_memory_size,否则会报错。vector_memory_size参数可以分别在CDB和PDB级别中指定,CDB级别用于指定当前向量池的大小,PDB级别用于指定当前PDB允许的最大向量池使用量。PDB的大小要小于CDB,否则同样会产生报错。

[oracle@OL96 ~]$ sqlplus / as sysdba;
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Jun 5 20:57:14 2025
Version 23.8.0.25.04

Copyright (c) 1982, 2025, Oracle.  All rights reserved.

Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04

SYS@FREE> show con_id;

CON_ID
------------------------------
1
SYS@FREE> show con_name;

CON_NAME
------------------------------
CDB$ROOT
SYS@FREE> show parameter vector_memory;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
vector_memory_size                   big integer 0
SYS@FREE>
SYS@FREE> alter system set vector_memory_size=600m scope=both;
alter system set vector_memory_size=600m scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-51950: The Oracle Database Vector Memory size cannot be increased.
Help: https://docs.oracle.com/error-help/db/ora-02097/

SYS@FREE>
SYS@FREE> alter system set vector_memory_size=600M scope=spfile;

System altered.

SYS@FREE> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@FREE> startup
ORACLE instance started.

Total System Global Area 1603289656 bytes
Fixed Size                  4923960 bytes
Variable Size             352321536 bytes
Database Buffers          603979776 bytes
Redo Buffers                4530176 bytes
Vector Memory Area        637534208 bytes
Database mounted.
Database opened.
SYS@FREE> show parameter vector_memory_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
vector_memory_size                   big integer 608M
SYS@FREE> show parameter sga_target;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                           big integer 1536M
SYS@FREE>
3.4.1 PDB vector_memory_size大小设置,

默认FREEPDB1为CDB设置的size大小,可以动态调整,无需重启实例

SYS@FREE> show con_id;

CON_ID
------------------------------
1
SYS@FREE> alter seesion set container=FREEPDB1;
alter seesion set container=FREEPDB1
SYS@FREE> alter session set container=FREEPDB1;

Session altered.

SYS@FREE> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 FREEPDB1                       READ WRITE NO
SYS@FREE> show parameter vector_memory_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
vector_memory_size                   big integer 608M
SYS@FREE> alter system set vector_memory_size=512m scope=both;

System altered.

SYS@FREE> show parameter vector_memory_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
vector_memory_size                   big integer 512M
SYS@FREE>
3.5 vector_query_capture参数

VECTOR_QUERY_CAPTURE 参数用于控制查询向量的捕获功能,是23ai实现闭环AI优化的关键一环,通过自动捕获向量查询,为索引调优和模型训练提供数据支撑。

该参数默认值为 ON,启用后数据库会通过抽样机制捕获部分查询向量。

开发测试环境建议保持ON以积累优化依据;生产环境根据资源消耗情况动态调整

SYS@FREE> show parameter VECTOR_QUERY_CAPTURE;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
vector_query_capture                 string      ON
SYS@FREE>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2407380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…