当前位置:首页 » 编程语言 » sqlspaceused
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlspaceused

发布时间: 2022-10-23 21:32:47

① 如何用查询分析器查询sql 数据库大小,查询语句是什么我用sp_spaceused老是不行

“我这边测试了 提示拒绝了sysaltfiles的select权限 注:我查的是在虚拟主机上的的数据库大小 用sp_spaceused查出的是已经使用的大小 我要查的是还剩余多少空间” 我说,兄弟,你脑子转一下不就行了?剩余=总数-使用 你不会不懂吧? --------------- SQLServer 2000,以下sql语句可以得到数据库的容量 declare @room integer select @room=size from sysaltfiles where name='数据库名'(或'自定义数据库要加"data") select @room=@room*8*1000/1024 print convert(varchar(10),@room)+' K' 可先用select * from sysaltfiles 语句查询一下数据库名 例:declare @room integer select @room=size from sysaltfiles where name='master'(或'自定义数据库要加"data") select @room=@room*8*1000/1024 print convert(varchar(10),@room)+' K' ------------- 详细请看 参考资料

② 新手SQL数据库管理员,在没人带的情况下应该怎么做。

严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
数据库系统阶段60年代后,随着计算机在数据管理领域的普遍应用,人们对数据管理技术提出了更高的要求:希望面向企业或部门,以数据为中心组织数据,减少数据的冗余,提供更高的数据共享能力,同时要求程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及数据的物理结构,也不影响应用程序,以降低应用程序研制与维护的费用。数据库技术正是在这样一个应用需求的基础上发展起来的。数据库技术有如下特点:* 面向企业或部门,以数据为中心组织数据,形成综合性的数据库,为各应用共享。* 采用一定的数据模型。数据模型不仅要描述数据本身的特点,而且要描述数据之间的联系。* 数据冗余小,易修改、易扩充。不同的应用程序根据处理要求,从数据库中获取需要的数据,这样就减少了数据的重复存储,也便于增加新的数据结构,便于维护数据的一致性。* 程序和数据有较高的独立性。* 具有良好的拥护接口,用户可方便地开发和使用数据库。* 对数据进行统一管理和控制,提供了数据的安全性、完整性、以及并发控制。数据库日常维护(参考) 数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分:一、备份系统数据SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。1、备份数据库每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);·每次用 sp_dboption 允许 select into/bulk 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。卸出数据库的命令为:DUMP DATABASE database_nameTO mp_devicedatabase_name 是要卸出的数据库名称,mp_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得设备的信息。下面一条命令用来卸出数据库 my_db :DUMP DATABASE my_dbTO db_bk_dev2、备份事务日志如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。备份事务日志的命令格式为:DUMP TRANsaction database_name[TO mp_device][WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]其中 database_name 是要备份事务的数据库名称,mp_device 是备份设备名称,仅当包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句时,才可以备份到设备。注意:如果总是用 DUMP DATEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运行 DUMP TRANsaction 命令刷新日志 。下面一条命令备份数据库 db160 的事务日志到备份设备上:DUMP TRANsaction db160TO db_log_bk_devWITH TRUNCATE_ONLY3、备份数据库及其日志间的相互作用在至少卸出一次数据库前,卸出事务日志是毫无意义的。下图显示了备份数据库及其日志间的关系如果在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。但是,如果在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此例显示了经常卸出事务的重要性。二、万一系统失败时恢复数据库系统如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出它。要恢复数据库按如下步骤去做:1、如果日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出被毁坏的或者不可存取的用户数据库事务日志。2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况:SELECT segmap,size FROM sysusagesWHERE dbid = ( SELECT dbid FROM sysdatabases WHERE name = “mydb”)3、检查查询的输出。在 segmap 列的 ‘3’代表数据分配,‘4’代表日志分配。size 列代表 2K 数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为:segmapSize--------------------310240//实际尺寸为:20M35120//实际尺寸为:10M45120//实际尺寸为:10M31024//实际尺寸为:2M42048//实际尺寸为:4M4、用 DROP DATABASE 命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR 命令的 DROPDB 选项。5、删除数据库后,用 sp_dropdevice 删除毁坏了的设备。6、用 DISK INIT 初始化新的数据库设备。7、重建数据库。用 CREATE DATABASE 命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。对上例,命令为:CREATE DATABASE mydb ON datadev1=20,datadev2=10LOG ON logdev1=108、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:ALTER DATABASE mydb ON datadev1=2[page]9、用 LOAD DATABASE 重新装入数据库,然后用 LOAD TRAN 装入前面卸出的日志。LOAD DATABASE 命令语法是:LOAD DATABASE database_nameFROM mp_deviceLOAD TRANsaction 命令的语法是:LOAD TRANsaction database_nameFROM mp_device卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。二、产生用户信息表,并为信息表授权;系统维护人员的另一个日常事务是为用户创建新的信息表,并为之授权。创建表以及为表授权的方法已经在讲过,在此只将有关命令语法写出来。·创建表的命令为:CREATE TABLE table_name( column_1 datatype [NULL | NOT NULL | IDENTITY], column_2 ……)goALTER TABLE table_nameADD PRIMARY KEY (column_list)go·删除表的命令格式为:DROP TABLE table_namego·为表授权的命令格式为:GRANT {ALL|permission_list}ON table_name TO user_namego ·收回权限的命令格式为REVOKE {ALL|permission_list}ON table_name FROM user_namego 三、监视系统运行状况,及时处理系统错误;系统管理员的另一项日常工作是监视系统运行情况。主要有以下几个方面:1、监视当前用户以及进程的信息使用系统过程:sp_who说明:该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。--------------------------------------------------------------- SLEEP从左向右依次显示:进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。如果监视时发现进程总数接近最大连接数(用系统过程:sp_configure “user conn” 查看)时,应下掉不活动或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。2、监视目标占用空间情况使用系统过程:sp_spaceused说明:该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。如下表是某数据库日志表的信息:NameRow_totalreserveddataIndex_sizeunused------------------------------------------------------------SyslogsNot avail32KB32KB0KBNot avail日常要监视的主要目标有:用户数据库、数据库日志表(syslogs)以及计费原始数据表等。如果发现占用空间过大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。3、监视 SQL Server 统计数字使用系统过程:sp_monitor说明:sp_monitor 显示SQL Server 的历史统计数字,下表是某系统的统计数字:Last_runCurrent_runSeconds---------------------------------------------------------------May 13 2000 1:27PMMay 13 2000 3:01PM5678CPU_busyIO_busyIdle---------------------------------------------------------------16(6)-0%0(0)-0%5727(5672)-99%Packets_receivedPackets_sentPacket_errors---------------------------------------------------------------21(17)100(97)0(0)Total_readTotal_writeTotal_errorsConnections--------------------------------------------------------785(366)311(113)0(0)3(2)上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读入写出情况等信息四、保证系统数据安全,周期更改用户口令;为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。更改用户口令是通过调用系统过程sp_password 来实现的。Sp_password 的语法为:sp_password caller_password,new_password [,loginame]其中caller_password 是登录口令(老口令),new_password是新口令,loginame是登录名称。 在网络搜索:数据库日常维护(参考) 相 关 文 章 Sybase存储过程的建立和使用SYBASE dbcc电信企业参与竞争的利器-数据仓库和数据挖掘SCOUNIX下磁带机的安装与备份StoredProcere(存储过程)编写经验和优化措施细说SYBASE数据库日志常见数据库系统之比较 - SYBASE 和 SQL SERVERSYBASE ASE FOR LINUX安装及perl连接SYBASESybase数据库应用(一)安装Sybase ASE

③ SQL数据存储问题

int和Bit类型的长度都是确定的。因为数据库是以页为单位来分配空间的,一个页等于8K

④ sql怎么获得数据库缓存空间大小

其实只要使用系统内置的存储过程sp_spaceused就可以得到表的相关信息

如:sp_spaceused 'tablename'

以下是为了方便写的一个存储过程,目的是把当前的所有表的相关信息全部都保存在一个指定的表里面

CREATE PROCEDURE get_tableinfo AS

if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create table tablespaceinfo --创建结果存储表
(nameinfo varchar(50) ,
rowsinfo int , reserved varchar(20) ,
datainfo varchar(20) ,
index_size varchar(20) ,
unused varchar(20) )


delete from tablespaceinfo --清空数据表

declare @tablename varchar(255) --表名称

declare @cmdsql varchar(500)

DECLARE Info_cursor CURSOR FOR
select o.name
from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1
and o.name not like N'#%%' order by o.name

OPEN Info_cursor

FETCH NEXT FROM Info_cursor
INTO @tablename

WHILE @@FETCH_STATUS = 0
BEGIN

if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
execute sp_executesql
N'insert into tablespaceinfo exec sp_spaceused @tbname',
N'@tbname varchar(255)',
@tbname = @tablename

FETCH NEXT FROM Info_cursor
INTO @tablename
END

CLOSE Info_cursor
DEALLOCATE Info_cursor
GO执行存储过程
exec get_tableinfo

查询运行该存储过程后得到的结果
select *
from tablespaceinfo
order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc

⑤ 如何查看sql数据库服务器数据

1、使用系统性能监视器监视当前SQL的工作性能(控制面板-->管理工具-->性能)可以查看SQL对磁盘、内存的总体占用
2、使用SQL 性能监视器(SQL Profiler)可以查看SQL 的执行事件,读写次数,起始和结束事件等等,可以保存死锁图形。

⑥ 怎样进行sql数据库的优化

1、数据库空间是个概述,在sqlserver里,使用语句 exec sp_spaceused 'TableName' 这个语句来查。

⑦ 如何快速获得SQL Server 表行数

其实有两个办法可以快速的查询到SQL Server的表数据。1. sp_spaceused:其中有一列是rows,如果输入的表对象的话,那么就会获得这个表的行数,速度非常快。其中也有一个列为rowcnt,Counts the total number of inserted, deleted, or updated rows since the last time statistics were updated for the table 使用下面的语句:---replace the tablename when you use this script from sys.sysindexes where id =object_id('tablename') and indid in(0,1) 通过这个统计结果可能不是太准确,因为系统统计信息有个时间差

⑧ 如何查询表空间用SQL命令

sql系统存储过程:sp_spaceused '表名',可以查看表使用空间的情况。

如图 data,即已使用的空间

⑨ SQL SERVER 临时表能使用EXEC SP_spaceused 查询表大小么

想请问你创建的是全局临时表和临时表?
如果是本地普通临时表,本地会话没有结束的话,是可以的,会话一旦消失,就查询不到了
如果是全局临时表,则用EXEC SP_spaceused是可以的
附:
全局临时表和本地普通临时表区别:
普通临时表的名称前面有一个编号符(#table_name),而全局临时表的名称前面有两个编号符(##table_name),本地普通临时表仅在当前会话中可见;全局临时表在所有会话中都可见

⑩ 如何使用SQL语句查询数据库及表的空间容量

--1、查看表空间的名称及大小
select
t.tablespace_name,
round(sum(bytes/(1024*1024)),0)
ts_size
from
dba_tablespaces
t,
dba_data_files
d
where
t.tablespace_name
=
d.tablespace_name
group
by
t.tablespace_name;
--2、查看表空间物理文件的名称及大小
select
tablespace_name,
file_id,
file_name,
round(bytes/(1024*1024),0)
total_space
from
dba_data_files
order
by
tablespace_name;
3.查看所有表空间使用情况
select
b.file_id
文件ID号,
b.tablespace_name
表空间名,
b.bytes/1024/1024||'M'字节数,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M'
已使用,
sum(nvl(a.bytes,0))/1024/1024||'M'
剩余空间,
round(100
-
sum(nvl(a.bytes,0))/(b.bytes)*100,2)||
'%'
占用百分比
from
dba_free_space
a,dba_data_files
b
where
a.file_id=b.file_id
group
by
b.tablespace_name,b.file_id,b.bytes
order
by
b.file_id;
总有一款适合你!