如何查询sqlserver数据库中数据的大小

如何查询sqlserver数据库中数据的大小,第1张

不是很懂你的问题意思,下次提问请描述的更清楚一些;

如果是想知道某一个表占用了多大空间,你可以用下面的语句

use yourDB

go

sp_spaceused yourTable

你会得到如下结果,各列分别是:

表名;行数;已占用空间;数据占用空间;索引占用空间;未使用空间;

如果你仅仅只是想知道某个列里面的值的数据长度,那就用datalength()函数就可以了

select DATALENGTH(a) DATALENGTH_a, from test1

第一,硬件配置要好。如果你机器不行,很烂,那么再怎么优化,也快不起来。

第二,数据库结构要优化,要在你常用的查询列上设置索引。比如你用select from table where name='jack' 这时候,你在name列上加索引,这样,查询的时候速度会非常快。

sqlite是文件型的数据库,所有的东西,都在一个文件中,故支持由对应的硬盘文件系统和 *** 作系统来决定

下面是原文解释支持的大小:

Every database consists of one or more "pages" Within a single database, every page is the same size, but different database can have page sizes that are powers of two between 512 and 65536, inclusive The maximum size of a database file is 2147483646 pages At the maximum page size of 65536 bytes, this translates into a maximum database size of approximately 14e+14 bytes (140 terabytes, or 128 tebibytes, or 140,000 gigabytes or 128,000 gibibytes)

谢谢,我知道了,我的数据库大约108g 即使是同样的磁带机也不能保证速度一样,影响备份速度的因素多了:是用fibre连接还是用SCSI连接;是用一 个磁带备份还是两个磁带同时备份;是通过网络备份还是本地备份;主机的CPU速度是多少;是一个CPU还是多个 CPU;是用什么备份软件备份所以比较是没有意义的 即使一切都一样得到的结果,如performance所所 说的"得到的数据只是数据库文件占用文件系统的大小"而且实际数据量的不同,备份时的压缩率也不同

不会转存,就在日志文件里。直到爆。这是默认设置下的情况。

如果你想限定日志文件的大小。在企业管理器中可以设置。设定后日志文件增长到指定大小后不再增长。

如果想转存到sqlserver的安装目录中。可以用企业管理器中的作业来完成。日志文件可以分为好几个文件。在企业管理器中也可以修改。数据库下分文件组,文件组包含文件。文件分为日志文件ldf和数据文件mdf。文件的存储路径可以指定。

打字太费劲了。

第一个是db2的日志问题。db2数据库的日志有两种模式,一种是循环日志,一种是归档模式。你的说法有问题,如果是循环日志的话,根据你的数据库里配置的三个参数,主日志文件和辅助日志文件数及日志大小文件,总的日志大小不会超过(总日志文件数与日志大小的乘积),然后是循环使用的,也就是说,如果数据库进行一次事务 *** 作时,先生成第一个主日志文件(受日志文件大小参数)控制,不足时生成第二个主日志文件,当一次事务超过所有的主日志文件时,才会创建辅助日志文件),然后下次覆盖第一个,依次循环,所以循环日志模式,日志文件大小不是无限增大的。只有在归档模式下才会不断产生日志文件,这种模式的好处是数据库可以恢复到任意时点。查看数据库日志的模式时,可以在db2=>命令行下connect to db name 然后 db2=> get db cfg for dbname

会看到有如下几个参数与日志有关系:

启用的恢复的日志保留 (LOGRETAIN) = OFF

启用的日志记录的用户出口 (USEREXIT) = OFF

日志文件大小(4KB) (LOGFILSIZ) = 1024

主日志文件的数目 (LOGPRIMARY) = 13

辅助日志文件的数目 (LOGSECOND) = 4

已更改的至日志文件的路径 (NEWLOGPATH) =

日志文件路径 = D:\DB2\NODE0000\SQL00002\SQLOGDIR\

溢出日志路径 (OVERFLOWLOGPATH) =

镜像日志路径 (MIRRORLOGPATH) =

首个活动日志文件 =

可以看出这里的数据库是运行于循环日志模式,第一个参数是off,如果是on则处于归档模式。下边有日志文件的路径,如果是归档模式,还可以查看到首个活动日志文件,则可以备份归档日志后,删除活动日志以前的归档日志文件。因此你说的按天的日志不知道是什么意思。更改上述参数采用 update db cfg using

第二个问题:db2的数据库数据是存储在表里的,表是位于表空间的,表空间对应的表空间容器物理文件存储在文件系统上。随着数据量的增大,分区容量不够时,一种方法是备份数据库,然后使用[重定向]还原数据库,将数据库的表空间容器重定向到一个存储量大的目录或者磁盘上。另一种方法是,直接为该表空间增加新的表空间容器,就可以了。比较简单,在此不在详述。

查看表空间信息时db2=>connect to dbname

db2=>list tablespaces

看到用户定义的表空间的编号,一般是3以后的。

然后

db2=>list tablespace containers for 3

可以查看3号表空间对应的表空间容器信息,一个表空间可以有多个表空间容器,这些表空间容器可以位于不同的磁盘和文件目录上,这样可以解决某个硬盘或者目录容量不足的问题。

给表空间增加容器的方法就不用讲了,直接alter tablespace语句就行了。

SELECT sum(dfTOTAL_SIZE) - sum(dfFREE_SIZE) as used ,

sum(dfTOTAL_SIZE) as total,

sum(dfFREE_SIZE) as free

FROM "SYS"V$TABLESPACE AS ts, "SYS"V$DATAFILE AS df WHERE tsID = dfGROUP_ID;

2、查询每个登陆账号对应有哪些数据账号

select

name

from

<每个数据库名称>sysusers

where

suid=suser_id('账号名')

3、查询数据账号属于哪个权限组

sp_helpuser

<用户名称>

以上就是关于如何查询sqlserver数据库中数据的大小全部的内容,包括:如何查询sqlserver数据库中数据的大小、有一个很大的数据库,容量7个G。。怎样才能够快速查询呢,我每次查询都需要十几分钟、sqlite3查询容量大小以及每条数据大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存