如果一个函数(function)或表达式(expression)使用了一个表的一列或多 列,则用户可以依据这些函数或表达式为表建立索引,这样的索引被称为函 数索引(Function-Based Index)。函数索引能够计算出函数或表达式的, 并将其保存在索引中。用户创建的函数索
如果一个函数(function)或表达式(expression)使用了一个表的一列或多
列,则用户可以依据这些函数或表达式为表建立索引,这样的索引被称为函
数索引(Function-Based Index)。函数索引能够计算出函数或表达式的值,
并将其保存在索引中。用户创建的函数索引既可以是平衡树类型(B-tree
index)的,也可以是位图类型(bitmap index)的。
用于创建索引的函数可以是一个数学表达式(arithmetic expression),也可以
是使用了 PL/SQL 函数(PL/SQL function),包函数(package function),C
外部调用(C callout),或 SQL 函数(SQL function)的表达式。用于创建索
引的函数不能包含任何聚合函数(ggregate function),如果为用户自定义函
数,则在声明中必须使用 DETERMINISTIC 关键字。例如,
- create or replace function f_david(p_value varchar2) return varchar2
- deterministic is
- begin
- return p_value;
- end;
如果在一个使用对象类型(object type)的列上建立函数索引,则可以使用此对象的方法(method)
作为函数,例如此对象的 map 方法。用户不能在数据类型为 LOB,REF,或嵌套表(nested table)的列上
建立函数索引,也不能在包含 LOB,REF,或嵌
套表等数据类型的对象类型列上建立函数索引。
使用函数索引
如果一个 SQL 语句的 WHERE 子句中使用了函数,那么建立相应的函数索引
(function-based index)是提高数据访问性能的有效机制。表达式
(expression)的结果经过计算后将被存储在索引中。但是当执行 INSERT 和
UPDATE 语句时,Oracle 需要进行函数运算以便维护索引。
例如,如果用户创建了以下函数索引:
CREATE INDEX idx ON table_1 (a + b * (c - 1), a, b);
当 Oracle 处理如下查询时就可以使用之前建立的索引:
SELECT a FROM table_1 WHERE a + b * (c - 1)
使用 UPPER(column_name) 或 LOWER(column_name) 函数建立函数索引
(function-based index)有助于与大小写无关(case-insensitive)的查询。例如
创建以下函数索引:
CREATE INDEX uppercase_idx ON employees (UPPER
(first_name));
有助于提高以下查询的性能:
SELECT * FROM employees WHERE UPPER(first_name) =
'RICHARD';
函数索引的依赖性
函数索引(function-based index)依赖于索引定义表达式中使用的函数。如果
此函数为 PL/SQL 函数(PL/SQL function)或包函数(package function),当
函数声明(function specification)发生变化时,索引将失效(disabled)。
用户需要被授予(grant)CREATE INDEX 或 CREATE ANY INDEX 权限才能
创建函数索引(function-based index)。
要想使用函数索引(function-based index):
● 建立索引后,表必须经过分析(analyze)。
● 必须保证查询的条件表达式不是 NULL 值, 因为 NULL 值不会被存储到
索引中。
以下各节将讲述使用函数索引的其他需求。
定义函数的权限
函数索引(function-based index)的所有者(owner)必须具备此索引定义中
使用的函数的 EXECUTE 权限。当 EXECUTE 权限被收回(revoke)后,
Oracle 则将索引标识为 DISABLED。索引的所有者无须具备此函数的
EXECUTE WITH GRANT OPTION 权限,即可将索引所在表的 SELECT 权限
授予(grant)其他用户。
解决函数索引的依赖性问题
函数索引(function-based index)依赖于她使用的所有函数。如果函数或函数
所在包的声明(specification)被修改过(或索引所有者对函数的 EXECUTE
权限被收回),将会出现以下情况:
● 索引被标记为 DISABLED。
● 如果优化器(optimizer)选择了在标记为 DISABLED 的索引上执行查
询,那么此查询将失败
● 使用标记为 DISABLED 的索引而执行的 DML 操作将失败,除非此索引
同时被标记为 UNUSABLE 且初始化参数(initialization parameter)
SKIP_UNUSABLE_INDEXES 被设为 TRUE。
函数被修改之后,用户可以使用 ALTER INDEX ... ENABLE 语句将索引重新置
为 ENABLE 状态。

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
