Sqlplus sys/zhou215 as sysdba
Startup
Connect oracle/oracle
由于虚拟机是linux的 plsql没有linux的版本,需要通过本机连上虚拟机
配置
查看ip /sbin/ifconfig -a 192.168.81.128
将虚拟机的ip填到net manager中的listner 通过netmgr命令
再通过lsnrctl start listener 启动listener
用 select name from v$database; 得到sid
这样就能通过 oracle sql developer来连接
Testtab1 200w 带索引
Testtab2 200w 带索引
Testtab3 400w 带索引 id not null id很多都是1000
Testtab4 200w 带索引 id not null
Testtab5 10 不带索引
----------高水位问题----------
select id from TESTTAB5; 8秒
analyze table TESTTAB5 COMPUTE statistics;
SELECT table_name, blocks, empty_blocks, num_rows FROM user_tables WHERE table_name = 'TESTTAB5';
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
1 TESTTAB5 74357 395 10
alter table TESTTAB5 move;
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
1 TESTTAB5 4 4 10
select id from TESTTAB5; 0秒
----------ID为varchar时 索引失效----------
select id from TESTTAB1 where id =1; 11秒
select id from TESTTAB1 where id ='1'; 0秒
id是varchar的
在sqlplus中可以用set autotrace on 看到
TABLE ACCESS FULL
在plsql developer中可以用
explain plan for
select id from TESTTAB1 where id ='1';
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
来查看到 INDEX RANGE SCAN
db中id是varchar类型,加了索引
Select * from table1 where id = 1;
这时候不会用到索引,会全表扫描。
补救方法 可以创建一个to_number的函数索引
设计db时要注意。
----------复合索引问题----------
Id id2 id3 为复合索引
select * from testtab2 where id=31; 0秒
select * from testtab2 where id2=31; 8秒
select * from testtab2 where id2=31 and id3=31; 9秒
只有在id有值的情况下,复合索引才有效
可以用hint语句 强制用索引
----------索引not null----------
当索引没有设置成not null时,
Order by id 是全表扫描的
explain plan for
select * from testtab4 order by id ;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
explain plan for
select * from testtab1 order by id ;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
--38秒
-----createStatement vs prepareStatement--------
package com.tristan;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 由于shared pool存放了执行计划(全表扫描)所以导致以后prepareStatement用不到索引了
* oracle重启后清空shared pool 就很快了
* 或是清理执行计划
* Alter system flush shared pool;
*/
public class TestJDBC {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.81.128:1521:ORCL", "oracle",
"oracle");
long begin = System.currentTimeMillis(); // 测试起始时间
test1(con);
long end = System.currentTimeMillis(); // 测试结束时间
System.out.println("操作所需时间:" + (end - begin) + " 毫秒"); // 打印使用时间
}
//18027 ms
private static void test1(Connection con) throws Exception {
PreparedStatement pStmt = con
.prepareStatement("select * from Testtab3 where id = ?");
pStmt.setInt(1, 32);
ResultSet result = pStmt.executeQuery();
}
//57 ms
private static void test2(Connection con) throws Exception {
Statement st = con.createStatement();
ResultSet result = st.executeQuery("select * from Testtab3 where id = 32");
}
}
分享到:
相关推荐
10. **调试和测试工具**:开发过程中,Oracle Forms提供了强大的调试器和测试工具,帮助开发者找出并修复问题。 这份“Oracle Form guide (Outside Training).ppt”很可能详细介绍了以上所有内容,并可能包含实战...
- **并发流程仿真**:能够对多个流程进行仿真测试。 - **服务集成与EAI**:实现不同系统间的无缝连接。 - **表单生成器**:简化数据输入流程。 - **企业级高伸缩性BPM服务器**:支持大规模部署。 #### Oracle BPM ...
- 插入测试数据: - department表:数学,计算机,化学,中文,经济学 - class表:软件,微电子,无机化学,高分子化学,统计,现代语言,国际贸易,国际金融 - student表:张三,钱四,王玲,李飞,王五等学生...
插入测试数据: ```sql INSERT INTO department VALUES (1, '数学'); INSERT INTO department VALUES (2, '计算机'); -- 更多插入语句... INSERT INTO class VALUES (101, '软件工程', 2, DATE '1995-09-01'...
9. **部署与测试**:学习如何将ESB项目打包并部署到Oracle SOA Suite服务器上,以及如何进行功能测试和性能测试。 10. **版本控制与生命周期管理**:理解服务版本控制的重要性,学习如何在Oracle ESB中管理服务的...
本文档将详细介绍官方 Oracle Security Training lab 文件中涉及的关键安全功能,包括 DB Vault、Audit Vault、Label Security、Data Masking 和 TDE,并对这些功能进行深入探讨。 #### 二、DB Vault **DB Vault**...
10. **Training and Documentation**:Oracle Developer通常会附带详尽的用户文档和教程,帮助初学者快速上手,并为高级用户提供深入的技术参考。 了解并掌握这些知识点,对于高效地使用Oracle Developer 6.7进行...
本系统“Training-And-Placement-Management_training_”正是基于JavaFX技术,专注于培训机构的培训管理和就业安置工作,旨在提高培训机构的工作效率和服务质量。 1. **JavaFX基础** JavaFX是Oracle公司推出的用于...
【标题】"JDE DOC FOR BSSV TRAINING" 涉及的主要知识点是Oracle JD Edwards(JDE)的企业服务(Business Services,简称BSSV)的使用与开发,特别是如何利用BSSV来消费外部Web服务。这些文档旨在提供培训材料,帮助...
4. 数据库管理:可能包括SQL查询语言的学习材料,以及MySQL、Oracle、MongoDB等数据库的安装、配置、数据管理及备份恢复的实战教程。 5. 操作系统:比如Linux系统的使用,包括命令行操作、系统服务管理、文件权限...
J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用的Java平台。它是一个开放标准,基于组件的架构,旨在提供跨多个操作系统和硬件平台的可移植性。J2EE平台包含了各种服务、...
9. **测试和调试**:JUnit是Java中常用的单元测试框架,而调试技巧对于找出并修复代码中的问题至关重要。 10. **持续集成/持续部署(CI/CD)**:如Jenkins,是Java开发中常见的自动化构建和部署工具。 11. **设计...
综上所述,"db-training:训练库"项目涵盖了Java后端开发的多个方面,包括数据库操作、框架使用、API设计、安全性以及测试等,对于想要深入学习Java和数据库开发的人员来说,这是一个很好的实践项目。
【标题】:“java training” 【描述】:提及的是支付宝口令红包在微信的封锁下成功逆袭,成为热门的红包玩法,特别是在年底聚会中被广泛应用。这涉及到的是互联网技术和移动支付领域的创新应用,虽然主要讲述的是...
ADO.NET是微软提供的一个强大的数据访问框架,用于与各种数据源(如SQL Server、Oracle等)交互。在.NET Framework 3.5中,ADO.NET进一步强化了对LINQ(Language Integrated Query)的支持,使得开发者能够更自然地...
- 最新的Java 7版本(推荐使用Oracle JDK)。 - 推荐使用Eclipse作为集成开发环境(IDE)。 #### 软件需求 除了上述硬件要求外,还需要安装以下软件: - Java Development Kit (JDK):最新版Java 7。 - 集成开发...
5. **创建检查点**:在测试过程中,创建检查点是至关重要的,它们用于验证特定对象或数据是否符合预期。QTP支持基于关键字和活动屏幕的检查点,测试结束后,检查点结果会显示是否通过。 6. **拆分测试操作**:为了...
"TK"可能代表"Test Kit"或者"Training Kit",通常是指一系列的学习材料或模拟测试,帮助考生准备OCP 10g认证考试。 Oracle 10g数据库是Oracle的第10个主要版本,发布于2003年,它带来了许多新特性,提高了性能、...
**Oracle VM VirtualBox**是一款虚拟化软件,它允许在同一台机器上运行多个操作系统,为开发者提供了便捷的环境测试和隔离。 **JavaFX**是Java的一个GUI(图形用户界面)工具包,用于构建桌面应用程序。JavaFX支持...