当前位置: 首页 > article >正文

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

一、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 ANDcity  = :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  NO3 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.04Copyright (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.04SYS@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>

相关文章:

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

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

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…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

华硕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;光既是波又是粒子。光子本…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

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

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

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

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

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…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#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;并检查收到的响应。它以以下模式之一…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

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

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