数据库 sybase,如何查找一些没用的表。 PB。

数据库 sybase,如何查找一些没用的表。 PB。,第1张

你好 楼主。

很幸运的看到你的问题。

但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。

对于你的问题我爱莫能助!

可能是你问的问题有些专业了。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。

希望我的回答也能够帮到你!

祝你好运。

最后祝您全家幸福健康快乐每一天!

Sybase公司是世界著名的数据厂家,其关系数据库产品SYBASE SQL Server在中国大中型企事业单位中拥有大量的用户。针对获取数据库相关信息也提供了对应的API,以便管理进行维护。

一.sp_spaceused 可看到数据库空间包括日志(对应数据库)

打开Sql Advantage 对话框——输入sp_spaceused(上边数据库选择要查的数据库)或直接

use your_db_name

go

sp_spaceused

go

运行!出现如下信息

Database name:数据库名称

Datebase Size:数据库空间总大小

Reserved:已分配空间

data数据:已分配空间中数据占用空间大小

index_size索引:已分配空间中index_size索引占用空间大小

unused:为已分配空间中未使用空间大小

计算关系:

reserved(已分配空间)=data+index_size+unused

剩余空间= Datebase Size(总空间)—已分配空间(resrved)

二sp_helpdb db_name 可看到数据库占用的数据库设备device的空间信息(对应数据库设备和数据库)

打开Sql Advantage 对话框——输入sp_s helpdb db local(local为要看的数据库名字如不输入则显示所有数据库)

运行!显示如下信息:

(一).数据库方面

1 name:数据库名字

2 db_size:数据库空间大小

3 owner:数据库所有者

4 created:数据库创建时间

5 status:状态

(二).数据库设备方面

1 device_fragments:数据库设备名称

2 size:数据库占用数据库设备的空间大小 单位MB

3 usage:用法 用途

4 created:数据库占用的数据库设备的空间的创建时间

5 free kbytes :数据库占用的数据库设备的剩余空间 单位KB

6 log only free

kbytes:数据库日志设备中日志剩余空间 单位KB

注意:由于数据库创建后不一定全部占用数据库设备的所有空间,可以在以后通过增加的方法占用设备空间,因此每增加一次就会有一条数据库设备信息

计算关系:

剩余空间=所有free Kbytes(剩余KB)相加+log only

free Kbytes

数据库占用数据库设备总空间(size)=size1+size2+……(所有相加)=数据库总空间(db_size)=

reserved(已分配空间)+剩余空间

free Kbytes(剩余KB)相加+log only free Kbytes= Datebase

Size(总空间)—已分配空间(resrved)

大数据分析的前瞻性使得很多公司以及企业都开始使用大数据分析对公司的决策做出帮助,而大数据分析是去分析海量的数据,所以就不得不借助一些工具去分析大数据,。一般来说,数据分析工作中都是有很多层次的,这些层次分别是数据存储层、数据报表层、数据分析层、数据展现层。对于不同的层次是有不同的工具进行工作的。下面小编就对大数据分析工具给大家好好介绍一下。

首先我们从数据存储来讲数据分析的工具。我们在分析数据的时候首先需要存储数据,数据的存储是一个非常重要的事情,如果懂得数据库技术,并且能够 *** 作好数据库技术,这就能够提高数据分析的效率。而数据存储的工具主要是以下的工具。

1、MySQL数据库,这个对于部门级或者互联网的数据库应用是必要的,这个时候关键掌握数据库的库结构和SQL语言的数据查询能力。

2、SQL Server的最新版本,对中小企业,一些大型企业也可以采用SQL Server数据库,其实这个时候本身除了数据存储,也包括了数据报表和数据分析了,甚至数据挖掘工具都在其中了。

3、DB2,Oracle数据库都是大型数据库了,主要是企业级,特别是大型企业或者对数据海量存储需求的就是必须的了,一般大型数据库公司都提供非常好的数据整合应用平台;

接着说数据报表层。一般来说,当企业存储了数据后,首先要解决报表的问题。解决报表的问题才能够正确的分析好数据库。关于数据报表所用到的数据分析工具就是以下的工具。

1、Crystal Report水晶报表,Bill报表,这都是全球最流行的报表工具,非常规范的报表设计思想,早期商业智能其实大部分人的理解就是报表系统,不借助IT技术人员就可以获取企业各种信息——报表。

2、Tableau软件,这个软件是近年来非常棒的一个软件,当然它已经不是单纯的数据报表软件了,而是更为可视化的数据分析软件,因为很多人经常用它来从数据库中进行报表和可视化分析。

第三说的是数据分析层。这个层其实有很多分析工具,当然我们最常用的就是Excel,我经常用的就是统计分析和数据挖掘工具;

1、Excel软件,首先版本越高越好用这是肯定的;当然对Excel来讲很多人只是掌握了5%Excel功能,Excel功能非常强大,甚至可以完成所有的统计分析工作!但是我也常说,有能力把Excel玩成统计工具不如专门学会统计软件;

2、SPSS软件:当前版本是18,名字也改成了PASW Statistics;我从30开始Dos环境下编程分析,到现在版本的变迁也可以看出SPSS社会科学统计软件包的变化,从重视医学、化学等开始越来越重视商业分析,现在已经成为了预测分析软件。

最后说表现层的软件。一般来说表现层的软件都是很实用的工具。表现层的软件就是下面提到的内容。

1、PowerPoint软件:大部分人都是用PPT写报告。

2、Visio、SmartDraw软件:这些都是非常好用的流程图、营销图表、地图等,而且从这里可以得到很多零件;

3、Swiff Chart软件:制作图表的软件,生成的是Flash

收藏推荐 备份数据库 *** 作是保证应用系统安全、稳定运行的必要手段。人民银行各类业务系统基本上都采用了sybase数据库作为主流数据库,而备份Sybas。数据库就成为系统管理员每天必做的工作之一。在大多数情况下,备份Sybase数据库的方法是利用sybase的bep命令或dump命令。 利用b叩命令的优点是可以在中心机房以外的远端机将数据库数据备份到远端机,而且由于只需记录少量日志,速度极快;缺点是只备份了数据库的数据,并没有备份数据库的表结构,如果数据库的表结构和数据遭到严重破坏,并已不可自动修复,恢复时就必须首先重建数据的表结构,然后才能利用bcp out命令恢复数据库的数据。此外还需手工截断日志,以免因日志空间不足使得数据库不能正常运行。由于上述缺点,一般Sybase的备份策略不能只利用b叩命令。du mp命令一般可以在中心机房的数据库服务器上执行,也可以在远端机上利用sybase的客机端软件来执行;可以将数据库备份到服务器磁带上,(本文共计3页) 如何获取本文>>

按说5-8w这样数量级的数据没有问题,写入Excel是布比较耗性能,主要还是要通过优化写入Excel的代码效率上去考虑。你可以考虑利用分批查询写入的方式来避免一次写太多的数据到Excel:将你的查询结果分段,比方你的语句中能不能用时间来认为分段,每次返回部分结果。

回到你的问题,对大数据量查询的解决方案有以下两种:

(1)、将全部数据先查询到内存中,然后在内存中进行分页,这种方式对内存占用较大,必须限制一次查询的数据量。

(2)、采用存储过程在数据库中进行分页,这种方式对数据库的依赖较大,不同的数据库实现机制不通,并且查询效率不够理想。以上两种方式对用户来说都不够友好。

2.解决思路

通过在待查询的数据库表上增加一个用于查询的自增长字段,然后采用该字段进行分页查询,可以很好地解决这个问题。下面举例说明这种分页查询方案。

(1)、在待查询的表格上增加一个long型的自增长列,取名为“queryId”,mssql、sybase直接支持自增长字段,oracle可以用sequence和trigger来实现。然后在该列上加上一个索引。

添加queryId列的语句如下:

Mssql: [QUERYID] [bigint] IDENTITY (1, 1)

Sybase: QUERYID numeric(19) identity

Oracle:

CREATE SEQUENCE queryId_S

INCREMENT BY 1

START WITH 1

MAXVALUE 999999999999999 MINVALUE 1

CYCLE

CACHE 20

ORDER;

CREATE OR REPLACE TRIGGER queryId_T BEFORE INSERT

ON "test_table"

FOR EACH ROW

BEGIN

select queryId_Snextval into :newqueryId from dual;

END;

(2)、在查询第一页时,先按照大小顺序的倒序查出所有的queryId,

语句如下:select queryId from test_table where + 查询条件 +order by queryId desc 。

因为只是查询queryId字段,即使表格中的数据量很大,该查询也会很快得到结果。然后将得到的queryId保存在应用服务器的一个数组中。

(3)、用户在客户端进行翻页 *** 作时,客户端将待查询的页号作为参数传递给应用服务器,服务器通过页号和queyId数组算出待查询的queyId最大和最小值,然后进行查询。

算出queyId最大和最小值的算法如下,其中page为待查询的页号,pageSize为每页的大小,queryIds为第二步生成的queryId数组:

int startRow = (page - 1) pageSize

int endRow = page pageSize - 1;

if (endRow >=queryIdslength)

{

endRow = thisqueryIdslength - 1;

}

long startId =queryIds[startRow];

long endId =queryIds[endRow];

查询语句如下:

String sql = "select from test_table" + 查询条件 + "(queryId <= " + startId + " and queryId >= " + endId + ")";

3.效果评价

该分页查询方法对所有数据库都适用,对应用服务器、数据库服务器、查询客户端的cpu和内存占用都较低,查询速度较快,是一个较为理想的分页查询实现方案。经过测试,查询4百万条数据,可以在3分钟内显示出首页数据,以后每一次翻页 *** 作基本在2秒以内。内存和cpu占用无明显增长。

以上也仅仅是分页查询结果查看的问题,你需要写入到Excel的话还需要考虑Excel写入代码的执行效率,这部分是很值得研究的。

JDBC调用Sybase存储过程,结果集总是无法返回!

java代码部分如下:

String sproc = "{ call zhouxiaobotest2(,,,)} ";

CommonDAO dao = null;

try {

dao = new CommonDAO(jndi);

Connection connect = daogetConn();

//得到总数

rowNum = PageDivgetCount(countSqltoString(), dao);

//设置分页信息

pageBeansetPageInfo(rowNum, pageSize);

// 获取CallableStatement语句:

CallableStatement mStatement = connectprepareCall(sproc,

ResultSetTYPE_SCROLL_INSENSITIVE,

ResultSetCONCUR_READ_ONLY);

// 传入输入参数和注册输出参数

mStatementsetString(1,sqltoString());

mStatementsetInt(2, 10);

mStatementsetInt(3, 10);

mStatementsetInt(4, 5000);

// 执行存储过程

ResultSet rs = null;

mStatementexecute();

rs = mStatementgetResultSet();

catch (Exception ex) {

exprintStackTrace();

loggerwarn(sqltoString());

} finally {

daodestroy();

dao = null;

sproc = null;

}

存储过程如下:

create procedure zhouxiaobotest @qry varchar(16384),@ipage int, @num int,@maxpages int

as

/@qry SQL语句, @ipage 页数, @num 每页记录条数, @maxpages 最大查询页数 /

begin

declare @execsql varchar(16384)

set @execsql = " select USER_NAME from TBL_USER "

execute (@execsql)

end

create procedure zhouxiaobotest2 @qry varchar(16384),@ipage int, @num int,@maxpages int

as

/@qry SQL语句, @ipage 页数, @num 每页记录条数, @maxpages 最大查询页数 /

begin

select USER_NAME from TBL_USER

end

现在我的问题是调用存储过程zhouxiaobotest,mStatementexecute()始终是false;而调用zhouxiaobotest2 mStatementexecute()就是true,能得到结果集。我想知道如何修改程序使我能够调用zhouxiaobotest取得结果集(之前调试程序运行没有抛出任何异常,而且控制台运行存储过程也都正确)

以上就是关于数据库 sybase,如何查找一些没用的表。 PB。全部的内容,包括:数据库 sybase,如何查找一些没用的表。 PB。、sybase数据库 如何使用sql语句查询,数据库容量大小和数据库使用量大小、目前都有哪些数据分析的工具等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9433660.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存