首页 > 数据库 >Oracle问题小记五:服务启动-索引-子查询-分页存储过程

Oracle问题小记五:服务启动-索引-子查询-分页存储过程

时间:2022-09-29 23:09:37浏览次数:76  
标签:存储 查询 索引 Oracle where SELECT 小记

今天,把 秋色园QBlog 的数据导到Oracle中运行,重拾Oracle,过程的主要问题记录下:

 

1:服务启动问题

这个问题发生多次了,那个毛网管没事又让人改计算名称,Oracle久没开了也没在意,Oracle服务启动总失败,折腾后才发现,于是把计算机名称改回去,重启电脑,再启用服务,正常。

 

2:索引问题

数据导到Oracle后,发现一些简单的查询变的相当的慢如:

select id,username,title from blog_content where userid=111 order by id desc

后来经网页点拔,给title加上索引就快了:“select中的放在包含索引(oracle中称覆盖索引)”
后来其它查询慢的,全给加索引,速度才上去,看来搞Oracle不搞索引,是没法玩的。

 

3:子查询语句问题

正常代码:

SELECT count(*) as UserCount,
(SELECT count(*)  FROM Blog_Content WHERE TypeID=0) as ArticleCount
FROM Blog_User

此语句在Access、Mssql、Sqlite、Mysql下皆正常,唯独 Oracle不成,加个函数解决如下:

SELECT count(*) as UserCount,
min((SELECT count(*)  FROM Blog_Content WHERE TypeID=0)) as ArticleCount

FROM Blog_User

 

4:存储过程调用问题

问题:

存储过程的参数varchar2,如果代码中参数为空,会报异常:ORA-01084: invalid argument in OCI call view

如果在PL/SQL中执行,而不会错。

解决方法是为空时,传递DBNull.Value。

 

5:完善 CYQ.Data for Oracle 版本分页存储过程。

直接修改了文章:​​折腾Oracle问题小菜记[分页存储过程/查询所有表、视图、存储过程/查询表、视图、存储过程字段结构与参数](三)​

 

6:修改字段顺序

增加列,又不想放在最后面,拉不上去,只好写代码更改顺序号。

 

select object_id from all_objects where  object_name='BLOG_COMMENT'--查表ID
select COL#,name from sys.col$ where obj#=49244--看一下字段顺序序号

update sys.col$ set COL#=8 where obj#=49244 and name='CREATETIME'--把序号更新了

 

7:更新序列初始值

数据库共用一个序列为自增ID,导完数据后序列值没变,需要调整值。

ALTER SEQUENCE 序列名称 Increment By 新的数字;

 

标签:存储,查询,索引,Oracle,where,SELECT,小记
From: https://blog.51cto.com/cyq1162/5724346

相关文章

  • oracle查询某用户授予出去以及被授予的对象权限
    文档课题:oracle查询某用户授予出去以及被授予的对象权限.>showuserUseris"LEO">createtabletestasselect*fromall_objects;Tablecreated.>selectcount(*)fr......
  • Oracle数据库用户权限分析
    文档课题:Oracle数据库用户权限分析.1、查询权限普通用户查询自己所拥有的所有权限.>showuserUSERis"LEO">select*fromsession_privs;PRIVILEGE--------------------......
  • Qt小技巧16.信号与lambda的一点小记
    1引言Qt中用信号连接到一个lambda表达式,可谓十分清爽,简单易懂,但是你觉得你真的就完全会用了?有些坑还是要去踩的。2看个例子这里定义一个QThread子类MyThread,在MainWin......
  • 千万级数据表选错索引导致的线上慢查询事故
     故障描述在7月24日11点线上某数据库突然收到大量告警,慢查询数超标,并且引发了连接数暴增,导致数据库响应缓慢,影响业务。看图表慢查询在高峰达到了每分钟14w次,在平时正常......
  • 索引优化与查询优化
    目录1、数据准备2、索引失效案例2.1全值匹配我最爱2.2最佳左前缀法则2.3主键插入顺序2.4计算、函数、类型转换(自动或手动)导致索引失效2.5类型转换导致索引失效2.6待......
  • MySQL高级 3:索引
    1.思考在图书馆中是如何找到一本书的?在字典中查找一个单词?   一般的应用系统对比数据库的读写比例在10:1左右(即有10次查询操作时有1次写的操作),而且插入操作和更新操......
  • MySQL索引
    什么是索引?索引类似于清华字典上的拼音查找页和部首查找页,通过索引我们能够快速的定位到需要查找的汉字。而索引实际上也是一张表,只不过这张表记录了key以及定位记录的字段......
  • Oracle中的正则表达式(及函数)
    运算符在介绍函数前,这里先说明一下Oracle中正则表达式运算符及其描述。如果不知道他们有什么用,或者也不知道描述说的是什么,没关系,可以先看后面的介绍,就知道他们的含义了......
  • Oracle 12C R2-新特性---增强索引压缩
    高级索引压缩可以很好的应用于所有支持的索引。使用高级索引压缩创建索引可以减少所有唯一和非唯一索引的大小,并显着提高压缩率,占用更少的空间,同时仍然可以有效地访问索引。......
  • 关于自动配置Oracle安装环境的RPM包说明
    说明我们都知道如果在OracleLinux操作系统平台上在Oracle,Oracle提供了一个RPM包来自动配置操作系统相关的参数以满足OracleDB的安装要求。这样就去掉了安装Oracle最为繁琐......