数据库
李晓LOVE向阳
这个作者很懒,什么都没留下…
展开
-
oracle读书笔记-----PL/SQL编程
(一)之基本数据类型、程序结构 PL/SQL是一种高效的事物处理语言,它具有如下优点 1、支持SQL 2、支持面向对象的编程方法 3、更好的性能和更高的效率 4、编写方便 5、与Oracle高度集成转载 2016-05-30 11:02:24 · 556 阅读 · 0 评论 -
ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄
ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄使用PL/SQL Developer 数据库远程客户端连接程序连接数据库:错误信息:ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄.TNS-12516 TNS:listener could not find available handlerwith matching protocol sta...原创 2018-08-01 14:58:48 · 900 阅读 · 0 评论 -
Impdp导入时报错:ORA-39006,ORA-39213
问题描述:Impdp导入时报错:ORA-39006: internal errorORA-39213:Metadata processing is not available解决思路:原创 2018-10-18 17:12:44 · 643 阅读 · 0 评论 -
mysql数据库,关键字作为字段,在insert或者查询的时候报:[Err] 1064 - You have an error in your SQL syntax; check the manual
错误描述:musql中新建表中,有一个字段名称为change,但是change是mysql数据库关键字,在使用insert/select 的时候,提示:[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the ri...原创 2019-01-02 15:52:54 · 793 阅读 · 0 评论 -
Oracle数据库密码过期,修改密码并设置永久有效
一、修改Oracle数据库密码二、设置密码永不过期1.查看用户的proifle是哪个,一般是default;SELECT username,PROFILE FROM dba_users2.查看对应的概要文件(如default)的密码有效期设置(一般默认为180天)SELECT * FROM dba_profiles s WHERE s.profile='DEFAUL...原创 2019-03-07 15:02:40 · 30707 阅读 · 0 评论 -
Navicat 出错:1130-host . is not allowed to connect to this MySql server,MySQL不允许远程连接
问题描述:在一台主机上安装Mysql数据库,在主机本地使用Navicat可以连接,但是从另外一台主机则无法访问提示:130-host . is not allowed to connect to this MySql server,即不允许远程连接。解决方案:1. 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入MySQ...原创 2019-03-30 11:10:44 · 3354 阅读 · 0 评论 -
Oracle表空间扩展失败(包含临时表空间)、分布式等待锁、ORA-30036无法按8扩展段(在还原表空间xxx中)等问题
问题描述:在大批量同步、抽取数据的过程中,往往出现表空间扩展失败、一些很长时间未执行完的SQL,分布式等待锁等。下面就来看看如何解决这些问题。查询时间较长的SQL并杀掉应用层回话oracle数据库查询正在执行的sql,通过gv$ session 和gv$sqlarea两个视图:select n.sid,n.serial#,n.program,n.terminal,n.logon_...原创 2019-04-01 14:42:27 · 1004 阅读 · 0 评论 -
【linux】 Oracle AWR 报告的生成和分析
* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。如何分析:* 在看awr报告的时候,我们并不需要知道所有性能指标的含义,就可以判断出问题的所在,这些性能指标其实代表了oracle内部实现,对oracle理解的越深,在看awr报告的时候,对数据库...原创 2019-07-12 14:58:54 · 659 阅读 · 0 评论 -
Oracle中用Exp命令导出指定用户下的部分表或数据
Oracle中,除Exp命令可进行一般的全库、全用户导出外,还可通过增加相关参数条件实现对部分库表或数据的导出。用Exp导出指定表的全部数据exp jck/password file=d:\test.dmp statistics=none TABLES=(JSEBOTEST,NEWMAKT,TEST_ORG,TEST_SUBJECT,TEST_USER)用Exp导出指定表中符合条件的...原创 2019-07-29 10:13:01 · 3406 阅读 · 0 评论 -
oracle 查看并行sql语句的并行数量和如何开并行
并行查询允许将一个SQL SELECT语句划分为多个较小的查询,每个部分的查询并发地运行,然后会将各个部分的结果组合起来,提供最终的答案。1、执行sql:select /*+ parallel(a,4) */ * from tf_f_user a where rownum<100000;2、如何查看该sql语句的并行数量:select t.sql_text,t.sql_id,s....转载 2019-07-29 11:57:28 · 2540 阅读 · 0 评论 -
Oracle 分析函数与聚合函数(重点理解)
一、Oracle分析函数的语法与作用:rank ( ) over ( [query_partition_clause]order_by_clause )dense_rank ( ) over ([query_partition_clause] order_by_clause )rownumber ( ) over ( [query_partition_cla...转载 2019-07-29 14:46:50 · 530 阅读 · 0 评论 -
Oracle内存参数调优
Oracle 数据库系统中起到调节作用的参数叫初始化参数,数据库管理员根据实际情况需要适当调整这些 初始化参数以优化Oracle系统。常见参数说明:2 系统内存参数的分配 2.1 Oracle 实例= 内存结构 + 进程结构oracle实例启动的过程,其实就是oracle内存参数设置的值加载到内存中,并启动相应的后台进程进行相关的服务过程。进程结构oracle进程...原创 2019-08-05 15:08:59 · 200 阅读 · 0 评论 -
Oracle分区表删除分区数据时导致索引失效解决
问题描述: 某表数据量在1亿左右,通过时间在建表时创建了分区,现在因为业务需要,需要删除某个时间段内的数据,如果要是用delete去删除这么多的数据,我还要写存储过程,分批提交的这样做,因此使用删除分区数据的方式。就是这样的一简单的truncate partition 引发了后继的业务故障。最终查询到该表的索引失效,重建立后恢复。原因分析:在使用truncate partit...原创 2019-08-05 16:25:43 · 2084 阅读 · 0 评论 -
Oracle 报 “ORA-00054 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效” 问题的解决方法
在执行数据库DDL操作 时,有事会出现“Oracle 报 “ORA-00054 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效” 的问题。 1 原因一般在用户修改记录之前,悲观锁就会发生作用,比如更新语句:select ..for update1执行这条命令之后,oracle 将会对返回集中的数据建立行级封锁,以防止其他用户修改这些记录。...原创 2019-08-20 17:05:38 · 13425 阅读 · 1 评论 -
ORA-01000: 超出打开游标的最大数 问题的分析和解决
遍历结果集取数时,运行一段时间提示:问题分析:可能超出数据库所运行的最大游标数;解决步骤:step 1: 查看数据库当前的游标数配置slqplus:show parameter open_cursors;step 2: 查看游标使用情况:select o.sid, osuser, machine, count(*) num_cursfrom v...原创 2019-08-12 13:35:01 · 4397 阅读 · 0 评论 -
BAT脚本编写常用技巧
在平常开发中,经常会碰到使用定时任务按时跑批数据,或者其他定时操作的任务。下面就汇总整理BAT脚本编写常用的技巧:第一:使用BAT命令替换文件中的字符串@echo 修改ctl控制文件内容Insert为append 表名改为FP_FPXX@echo off&setlocal enabledelayedexpansion@rem 读取CB_FDKFPCGL_MX_sqlldr.c...原创 2019-08-17 15:59:08 · 795 阅读 · 0 评论 -
MySQL表与数据向Oracle移植(使用Oracle SQL Developer工具)
问题背景: 今天接到一个任务,让我把MySQL中的表与数据移植到Oracle中(也就是我们的项目需要使用Oracle),本来打算一个表一个表的改的(很傻很天 真),结果发现,光sql语句就有40多兆!从网上找了好久,参考了好多方法,最后只有这个实现了,也就是Oracle中的Oracle SQL Developer工具实现了数据库的移植,特此分享。1、工具的准备原创 2018-04-01 19:42:45 · 756 阅读 · 0 评论 -
Oracle之 dmp导入/导出、数据库操作等过程中的字符集问题
Oracle之 dmp导入/导出、数据库操作等过程中的字符集问题开篇:因为要定位一个 关于dmp文件导入的乱码问题, 于是乎我开始了漫长了 Oracle字符集搜索之路,网上关于讲解oracle字符集的文章多得数不胜数,但转载的这篇文章确是我最最喜欢的,图文并茂,恰当的例子通俗易懂,对于我这种小菜最最适合不过。本文转自:http://blog.163.com/jian转载 2017-05-10 16:05:43 · 511 阅读 · 0 评论 -
dblink 两端数据库字符集不同导致的乱码解决办法
场景:数据库A: WE8DEC字符集数据库B: ZHS16GBKdblink A->B : to_b SELECT cn_name FROM user_info@to_b where rownum显示的结果为乱码:????? 原因:作为dblink的两端,在A通过to_b访问B数据库时,A为B的客户端,原创 2017-05-10 15:51:12 · 5078 阅读 · 1 评论 -
JAVA中对存储过程的调用方法
一:Java如何实现对存储过程的调用: A:不带输出参数的 ---------------不带输出参数的----------------------------------create procedure getsum@n int =0asdeclare @sum intdeclare @i intset @sum=0set @i=0while @i原创 2016-05-31 15:40:37 · 7703 阅读 · 1 评论 -
sql语句优化
sql语句优化 性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化。常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果。3)少用子查询4)原创 2016-06-01 14:53:27 · 2317 阅读 · 0 评论 -
触发器
一张清晰的图,勾起你学习的兴趣: 详细的内容介绍满足你学习的热情: 壹:触发器的基本内容 一,概念: 是一种特殊类型的存储过程。 又不同于普通的存储过程。 主要区别:1,触发器主要是通过事件进行触发而被执行的(例如:插入、修改或删除记录时,SQL Server就会转载 2016-06-01 20:09:12 · 609 阅读 · 0 评论 -
mysql索引总结----mysql 索引类型以及创建
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR原创 2016-07-11 15:47:14 · 394 阅读 · 0 评论 -
oracle行锁 select for update
问题是,如果两个人同时查询到了一条数据,第二个的修改就会造成第一个人获取失效。为了避免这种情况的发生,我们使用了select for update对获取到的行进行了加锁。下面简单介绍一下select for update的使用方法。先说明一下会用到的名词概念:statement: 一个SQL语句。 session: 一个由ORACLE用户产生的连接,一个用户能产生多个SESSI原创 2016-07-13 17:17:15 · 4998 阅读 · 1 评论 -
oracle执行update语句卡住不动
问题开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的select语句却是可以执行的。原因和解决方法这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,原创 2016-07-28 15:53:22 · 4045 阅读 · 1 评论 -
使用JDBC在MySQL数据库中快速批量插入数据
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:void addBatch() throws SQLExceptionAdds a set of parameters to this PreparedStatement object's batch原创 2016-07-08 12:36:33 · 1258 阅读 · 0 评论 -
优化临时表使用,SQL语句性能提升100倍
【问题现象】线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右。SQL语句如下:SELECT DISTINCT g.*, cp.name AS cp_name, c.name AS category_name, t.name AS type_name FROMgm_game g LEFT JOIN原创 2016-07-08 15:58:31 · 487 阅读 · 0 评论 -
如何查看数据库执行计划
本文介绍如何查看一下主流数据库的SQL执行计划,帮助我们提升SQL执行效率。 Oracle数据库查看数据库执行计划EXPLAIN PLAN FOR SELECT * FROM SCOTT.EMP; --要解析的SQL脚本 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 如图原创 2016-07-08 16:51:25 · 7299 阅读 · 0 评论 -
Oracle 删除数据时死机
项目中,有时候会把在一定时间区间的数据删除后,然后重新保存近新的,有时候会经常遇到执行delete语句,导致java程序卡住的情况,这时候通常是由于,之前的一些操作例如:修改了数据,没有提交,这个时候数据库是将该条数据锁定的,其他对这条数据的操作是不能执行的,一直要等到锁定该数据的操作提交或者回滚。这个功能是数据库从数据的安全角度考虑的,属于正常现象这个时候的解决方法,可以在客户原创 2016-08-04 15:01:01 · 2582 阅读 · 0 评论 -
掌握MySQL如何使用临时表,避免踩中性能地雷
【临时表存储】MySQL临时表分为“内存临时表”和“磁盘临时表”,其中内存临时表使用MySQL的MEMORY存储引擎,磁盘临时表使用MySQL的MyISAM存储引擎;一般情况下,MySQL会先创建内存临时表,但内存临时表超过配置指定的值后,MySQL会将内存临时表导出到磁盘临时表。【使用临时表的场景】1)ORDER BY子句和GROUP BY子句不同,例如:ORDERY B原创 2016-08-01 21:31:37 · 572 阅读 · 0 评论 -
.txt形式的文本数据导入oracle数据库
客户端连接数据库导入1. 安装有oracle客户端,配好监听。2. 以oracle数据库app用户的表user_svc_info为例CREATE TABLE USER_SVC_INFO( PHONE varchar2(20) NOT NULL, SVC_ID varchar2(32) NOT NULL, P_USERNAME varchar2(100) NULL, US原创 2016-08-23 15:43:40 · 5804 阅读 · 0 评论 -
Oracle数据导入导出imp/exp
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接 (通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然原创 2016-08-23 15:58:42 · 215 阅读 · 0 评论 -
SQL Server , Orcale 如何查询数据库或者表中的索引
SQL Sever数据库查询索引-- 查看某個表的索引SELECT * FROM sys.sysindexesWHERE id=object_id('RelactionGraph') -- 查看整個庫的索引SELECT * FROM sys.sysindexes -- 查看所有庫的索引IF object_id('tempdb..#')IS NOT NULL DROP TAB原创 2016-09-18 13:45:56 · 10861 阅读 · 0 评论 -
数据库结果集resultSet如何操作结果集光标操作
“对只转发结果集的无效操作: first” – 异常今天调用DbUtil类直接操作数据库,取得ResultSet,想判断其是否为空(sql中有exists判断有无相关记录),结果出现异常: Java代码 [ERROR] 2009-03-19 11:04:44 [http-8080-1] com.utils.DbUtil.exec原创 2016-12-28 14:47:55 · 1849 阅读 · 0 评论 -
Oracle表的空间释放,碎片整理记录
oracle数据库碎片是如何产生的当生成一个数据库时,它会分成称为表空间(tablespace)的多个逻辑段(segment),如系统(system)表空间,临时(temporary)表空间等。一个表空间可以包含多个数据范围(extent)和一个或多个自由范围块,即自由空间(free space)。表空间、段、范围、自由空间的逻辑关系如下:当表空间中生成一个段时,将从表空间有效自由空间中为...原创 2019-10-08 16:42:23 · 1663 阅读 · 0 评论