几个小问题 :-D

时间:2022-05-29 17:38:45
1.我使用一个查询语句查询数据,DOS怎么回显查询使用的时间(就是这个:Executed in 100.01 seconds );

2.使用变量的查询节约时间还是普通查询节约时间 ?
[如:

define temp_table ="scott.emp";
select * from  &temp_table;



select * from scott.emp;

]

3.SQLServer中查询第 n 条到第 m 记录的方法可以是:
SELECT TOP m-n+1 * FROM publish WHERE (id NOT IN (SELECT TOP n-1 id FROM publish))

在ORACLE中这样查询可以么?
select ename from(select ename,rownum rn from scott.emp)where rn between n and m;

4.各位牛人推荐一篇关于“oracle并行计算技术”文章,虽然我已经百度到很多了~:

5.数据库刚开始插入数据的时候可以达到50W条/分种,可是插入到2000W条数据之后,即使不再插入数据,cpu的负荷都在90%左右,迟迟降不下去,而且这时候插入数据的速度是 6W条/分钟,效率几乎降低了8倍,主要是什么原因导致的,解决办法有哪些呢?

6,发帖虽多可以给100分,有没有办法一次加到200,或者300分的呢?我不想等到第二天再来+;

13 个解决方案

#1


这些小问题我都不会呢

#2


2.A方法:在程序中使用拼接字符串的方式进行查询,如:
strsql:='select * from table where name='''+yourname+'''';
yourname:='liming';
execsql;                                             
  B方法:在程序中使用参数
strsql:=''select * from table where name=''':yourname''';
方法B快与方法A

3.select ename from(select ename,rownum rn from scott.emp)where rn between n and m; 
ORACLE 是可以这样查询的;

4建议用GOOGLE;
如果还不满意,那就只有去买书了~~

5 ORACLE中如果要大批量插入数据,建议分批插入,比如插入10000条提交一次。尽量缩小事物。否则会生成大量DML锁,以及回滚段方面的原因,会严重影响数据库的性能;

6 发帖分数跟级别有关,比如我现在就可以发200分的帖子了~~呵呵

#3


为什么:方法B快与方法A ??
好像都一样啊~

2.A方法:在程序中使用拼接字符串的方式进行查询,如:
strsql:='select * from table where name='''+yourname+'''';
yourname:='liming';
execsql;                                           
  B方法:在程序中使用参数
strsql:=''select * from table where name=''':yourname''';

#4


我曾经看过一本书,书里面就是这么写的!我知其然不知其所以然~~呵呵

#5


1.  set timing on;
 
2. 应该是普通查询

3. select ename 
     from (select ename, rn 
             from (select ename,rownum rn 
                     from (select ename from scott.emp order by xxx) )
            where rn <= m)
    where rn >= n;

4.....

5. 提交的频率,还有语句是否绑定变量等等。

6,升一个星星发帖分数上限200,两个星星发帖分数上限300

#6


可能是:号被优化了吧

#7


  set timing on; 

为什么我设置了显示的是年月日,不是秒啊?

#8


set timing on 

#9


1、set timing on
2、灵活使用变量的问题。所以,不能绝对的说哪个方法更快。就LZ提供的简单sql而言,普通sql快。LZ可以看一下关于变量绑定的资料
3、一般查询第 n 条到第 m条记录的时候,都会根据某个特定的条件排序,sql同5楼
4、我也说不好
5、要定时提交一定的事物
6、与你当前的级别有关。

#10


第二个问题,还是普通查询快!

#11


学习了

#12


引用楼主 limin910 的帖子:
即使不再插入数据,cpu的负荷都在90%左右,迟迟降不下去


表上应该有不少索引吧?

#13


嗯,好像就有一个索引吧。
感谢各位的解答,~基本上差不多了~~

#1


这些小问题我都不会呢

#2


2.A方法:在程序中使用拼接字符串的方式进行查询,如:
strsql:='select * from table where name='''+yourname+'''';
yourname:='liming';
execsql;                                             
  B方法:在程序中使用参数
strsql:=''select * from table where name=''':yourname''';
方法B快与方法A

3.select ename from(select ename,rownum rn from scott.emp)where rn between n and m; 
ORACLE 是可以这样查询的;

4建议用GOOGLE;
如果还不满意,那就只有去买书了~~

5 ORACLE中如果要大批量插入数据,建议分批插入,比如插入10000条提交一次。尽量缩小事物。否则会生成大量DML锁,以及回滚段方面的原因,会严重影响数据库的性能;

6 发帖分数跟级别有关,比如我现在就可以发200分的帖子了~~呵呵

#3


为什么:方法B快与方法A ??
好像都一样啊~

2.A方法:在程序中使用拼接字符串的方式进行查询,如:
strsql:='select * from table where name='''+yourname+'''';
yourname:='liming';
execsql;                                           
  B方法:在程序中使用参数
strsql:=''select * from table where name=''':yourname''';

#4


我曾经看过一本书,书里面就是这么写的!我知其然不知其所以然~~呵呵

#5


1.  set timing on;
 
2. 应该是普通查询

3. select ename 
     from (select ename, rn 
             from (select ename,rownum rn 
                     from (select ename from scott.emp order by xxx) )
            where rn <= m)
    where rn >= n;

4.....

5. 提交的频率,还有语句是否绑定变量等等。

6,升一个星星发帖分数上限200,两个星星发帖分数上限300

#6


可能是:号被优化了吧

#7


  set timing on; 

为什么我设置了显示的是年月日,不是秒啊?

#8


set timing on 

#9


1、set timing on
2、灵活使用变量的问题。所以,不能绝对的说哪个方法更快。就LZ提供的简单sql而言,普通sql快。LZ可以看一下关于变量绑定的资料
3、一般查询第 n 条到第 m条记录的时候,都会根据某个特定的条件排序,sql同5楼
4、我也说不好
5、要定时提交一定的事物
6、与你当前的级别有关。

#10


第二个问题,还是普通查询快!

#11


学习了

#12


引用楼主 limin910 的帖子:
即使不再插入数据,cpu的负荷都在90%左右,迟迟降不下去


表上应该有不少索引吧?

#13


嗯,好像就有一个索引吧。
感谢各位的解答,~基本上差不多了~~