.net频繁请求oracle数据库卡死问题

.net频繁请求oracle数据库卡死问题,第1张

1SQL语句存在效率问题

比如为何是ORDER BY null?没有索引字段嘛?至少应该 ORDER BY id之类的

建议代码优化如下,测试版本11G,当然每个版本的数据库 效率都不一样

比分析函数效率高

select count(1) from 

    (select  from

        (select  from

            (select rownum rd,tt from test01 tt order by object_id) t

         where rd<10000) t1 where rd>=9000) t2 

     order by object_id

2改SQL语句也就会执行慢,不至于卡死,是生产库还是你自己搭建的测试库?

建议检查表大小,水位线等,必要是重建表或重新分析表数据或使用10046事件跟踪下

delete数据不会回收已经分配出去的block(也就是delete前后你查看user_segments中的信息不会有改动)。

但这时你对表执行analyze后查看dba_tables表的话会发现empty_block数目变大或者avg_space数据变小。

如果你希望减少该table占用的实际block数目,

你需要使用move *** 作将table重建,oracle才会重新分配block,这时table上的索引会失效,需要rebuild。

一,创建测试环境

11 创建测试表,为其插入16万条记录

create table jax_t11

as

select from dba_objects

where rownum <= 10000;

insert into jax_t11

select from jax_t11;

commit;

insert into jax_t11

select from jax_t11;

commit;

insert into jax_t11

select from jax_t11;

commit;

insert into jax_t11

select from jax_t11;

commit;

12 创建索引

create index idx_jax_t11_01 on jax_t11(owner,object_name,created);

13 分析表及索引

begin

dbms_statsgather_table_stats

( ownname => user, -- 表的拥有者

tabname => upper('jax_t11'), -- 表名称

method_opt => 'for all indexed columns size 1', -- 获得所有索引列的柱状图

cascade => TRUE ); -- 级联获取 indexes的统计信息

end;

14 查看表占用空间大小

select segment_name,segment_type,bytes/1024/1024 from dba_segments ds

where dssegment_name in ( 'JAX_T11', upper('idx_jax_t11_01'));

SEGMENT_NAME SEGMENT_TYPE BYTES/1024/1024

JAX_T11 TABLE 17

IDX_JAX_T11_01 INDEX 9

这里我们可以看到,表占空间17M,索引占空间9M;

表空间占用明细

SELECT table_name,tablespace_name,

num_rows, -- 记录行数

avg_row_len, --平均行长度

blocks,

avg_space,

empty_blocks

from user_tables ut

where uttable_name = 'JAX_T11'

TABLE_NAME TABLESPACE_NAME NUM_ROWS AVG_ROW_LEN BLOCKS AVG_SPACE EMPTY_BLOCKS

JAX_T11 DRP_DATA 160000 100 2146 0 0

索引空间占用明细

SELECT index_name,table_name,leaf_blocks,distinct_keys,num_rows

from user_indexes ut

where utindex_name = upper('idx_jax_t11_01')

INDEX_NAME TABLE_NAME LEAF_BLOCKS DISTINCT_KEYS NUM_ROWS

IDX_JAX_T11_01 JAX_T11 1036 9832 160000

二,删除90%的记录后的空间占用

21 删除90%的记录

delete from jax_t11

where rowid in (select r1

from (select rowid r1, mod(rownum, 100) r2 from jax_t11) t

where r2 <= 90);

commit;

22 分析表及索引

begin

dbms_statsgather_table_stats

( ownname => user, -- 表的拥有者

tabname => upper('jax_t11'), -- 表名称

method_opt => 'for all indexed columns size 1', -- 获得所有索引列的柱状图

cascade => TRUE ); -- 级联获取 indexes的统计信息

end;

23 查看表占用空间大小

select segment_name,segment_type,bytes/1024/1024 from dba_segments ds

where dssegment_name in ( 'JAX_T11', upper('idx_jax_t11_01'));

SEGMENT_NAME SEGMENT_TYPE BYTES/1024/1024

JAX_T11 TABLE 17

IDX_JAX_T11_01 INDEX 9

这里我们可以看到,表占空间17M,索引占空间9M;与删除数据前相比,没有任何改变

表空间占用明细

SELECT table_name,tablespace_name,

num_rows, -- 记录行数

avg_row_len, --平均行长度

blocks,

avg_space,

empty_blocks

from user_tables ut

where uttable_name = 'JAX_T11'

TABLE_NAME TABLESPACE_NAME NUM_ROWS AVG_ROW_LEN BLOCKS AVG_SPACE EMPTY_BLOCKS

JAX_T11 DRP_DATA 14400 100 2146 0 0

索引空间占用明细

SELECT index_name,table_name,leaf_blocks,distinct_keys,num_rows

from user_indexes ut

where utindex_name = upper('idx_jax_t11_01')

INDEX_NAME TABLE_NAME LEAF_BLOCKS DISTINCT_KEYS NUM_ROWS

IDX_JAX_T11_01 JAX_T11 998 7654 14400

三,move table & rebuild index

31 删除90%的记录

alter table jax_t11 move;

alter index idx_jax_t11_01 rebuild;

32 分析表及索引

begin

dbms_statsgather_table_stats

( ownname => user, -- 表的拥有者

tabname => upper('jax_t11'), -- 表名称

method_opt => 'for all indexed columns size 1', -- 获得所有索引列的柱状图

cascade => TRUE ); -- 级联获取 indexes的统计信息

end;

33 查看表占用空间大小

select segment_name,segment_type,bytes/1024/1024 from dba_segments ds

where dssegment_name in ( 'JAX_T11', upper('idx_jax_t11_01'));

SEGMENT_NAME SEGMENT_TYPE BYTES/1024/1024

JAX_T11 TABLE 2

IDX_JAX_T11_01 INDEX 08125

这里我们可以看到,表占空间2M,索引占空间08125M;与删除数据前相比,该回收的空间已经回收完毕

一、目标任务

1主要工作任务

《1∶25万内陆干旱区地下水资源评价塔里木盆地地下水勘查空间数据库》是在综合研究已有资料的基础上,补充野外实际工作,建立了58个标准图幅的1∶25万空间数据库。

2技术要求

采用中国地质大学开发的MAPGIS软件平台,完全依照中国地质调查局提出的各项技术标准,执行中国地质调查局最新修订的《西北地下水资源勘查评价空间数据库工作指南》20版及其他相关标准。对选定的58幅1∶25万标准图幅综合水文地质图、地质图、生态环境水文地质图、地貌图、地下水开发利用规划图、地下水水化学类型图、地下水资源分布图、平原区地下水质量分区图、综合水文地质剖面图、重点流域等水位线图等图件进行数字化处理和空间数据库的建立。

参考标准或引用标准:

GB 2260中华人民共和国行政区划代码

GB 9649地质矿产术语分类代码

GB/14157水文地质术语

GB/T 14538-93综合水文地质图图例及色标(1∶200000~1∶500000)

GB/T 14848地下水质量标准

GB/T 13923-92,国土基础信息数据分类与代码(中国标准出版社,1992)

DZ/T 0197-1997数字化地质图图层及属性文件格式(国家行业标准)

西北地下水资源勘查评价空间数据库工作指南

3提交成果

1)数据库成果(光盘汇交):见表6-1。

2)文档:属性表、图幅基本概况表、工作日志、自检表、互检表、质检组检查表、图面检查表。

表6-1 成果汇交光盘物理存储结构

3)塔里木盆地地下水勘查包括58个标准图幅的水文地质专业图件共7张彩色喷墨全要素图各1张、重点流域等水位线图3张和综合水文地质剖面图1张。

4)《1∶25万内陆干旱区地下水资源评价塔里木盆地地下水勘查空间数据库》建库报告一份。

二、工作方法及流程

(一)项目组织与实施

项目由新疆地质调查院组织,由水文地质工程地质、绘图、计算机等专业技术骨干组成,严格按照规范和技术要求实施。

(二)工作方法

概据任务书的要求,收集、购买已出版的塔里木盆地58幅图的地理信息数字化成果数据,采用中国地质大学开发的MAPGIS61软件平台,将此数据在经纬秒格式下进行拼接,按《西北地下水资源勘查评价空间数据库工作指南》标准对地理属性进行了修改。各类专业图件经过专业人员的编图,经审查合格后,采用彩色或灰度扫描,进行图形数字化,做到图元丢失率为0,误差小于002mm,其精度均达到设计要求。数据在矢量化过程中以作者原图为主的原则,属性内容以报告和图面内容相结合的方法采集,成果资料中没有的不予反映。

(三)工作流程

本次数据库建设完全按照《西北地下水资源勘查评价空间数据库工作指南》的具体要求,对相关数据资料进行整理。在MAPGIS支持环境下完成图形数据的输入和编辑,利用Access系统下创建的满足《西北地下水资源勘查评价空间数据库工作指南》数据结构要求的数据表,完成外挂属性数据的录入,并实现图层与属性数据的连接。

1数据信息组成

根据新疆塔里木盆地地下水勘查总体设计书的要求,确定此次工作数据信息的内容为基础地理、基础地质、社会经济信息、水文地质信息(含水文地质条件、水文地质观测、地下水资源等)、环境地质信息、元数据信息,具体的数据信息与内容见表6-2。

表6-2 主要数据类型与数据特征

2图层划分

新疆塔里木盆地空间数据库的建设,从基础资料图件到成果表达图件,多数内容涉及大量的矢量图形。因此,标准化处理必须确定各种图件的图层划分、图元、属性等方面的内容,以使图形库最大限度地达到共享。图形分层主要考虑到便于图形的 *** 作、管理和计算,同时考虑数据本身的专业数据特点。图层划分详见表6-3 。

表6-3 塔里木盆地地下水勘查空间数据库图层划分

续表

注:#代表含水层编号,含水层未分时,#用“0”替代。

图6-1 工作流程示意图

3数据准备阶段

作者原图及简单图件用二值或灰度,以300dpi精度扫描,复杂图件用彩色以300DPI精度扫描。所有图件的图式图例参数说明文件放入README文件夹中。

4数据矢量化阶段

放大70倍进行图件的数字化处理。点线数字化时,要保证其准确性和自然光滑,有坐标的点采用单点展绘的方法直接投影到1∶25万图中,保证了精度。线数字化时,为确保拓扑时弧段不变形,未采用MAPGIS系统提供的线圆滑功能。

5检查矢量化图件

喷绘数字化图件,对照原图进行自检、互检、抽检,并由水文地质专家进行100%的检查,确保矢量化后的图形数据与原图件一致性和完整性。

6误差校正

塔里木盆地面积大,横跨4个带。各带图件经检查无误后,生成基于原图高斯北京投影带方式的理论图框,进行误差校正。每标准图幅采集13个控制点,除4个角点外,其余点均匀分布在图幅内。

7无投影格式下重新拓扑

将检查无误的数据投影到经纬度格式。在经纬度下再进行各带各类图件的拼接,为确保套合精度,重新进行拓扑,录入面属性,再将参与做面的线从整体拓扑图层中弧转线中分离出来,做线属性。

8喷绘图件

对参与整体拓扑的图层进行拓扑处理、错误检查、修改,然后编辑区颜色。将各图层形成工程文件后,彩喷出图。再由绘图专业人员和水文地质专家对照原图检查,检查出错误进行修改,再出图,再次检查,直至完全无误,最后彩喷成果图件。

9填写属性卡片

属性卡片的内容以原图和原报告为主要依据。

10录入属性

在MAPGIS属性库管理模块中将各图层ID号和图元编号做唯一。

11转换文件格式

将经纬度格式下的属性文件,生成E00文件,转入ARCINFO中,形成最终的ARCINFO格式数据。

工作流程见图6-1。

以上就是关于.net频繁请求oracle数据库卡死问题全部的内容,包括:.net频繁请求oracle数据库卡死问题、oracle数据库中table的空间在delete后为什么没有收回、建立空间数据库的原理、方法和步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9299744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存