创建表,存储每天的表空间占用情况
CREATE TABLE [dbo][t_rpt_table_spaceinfo](
[table_name] [sysname] NOT NULL,
[record_date] [date] NOT NULL,
[record_time] [time](7) NOT NULL,
[rows_count] [bigint] NULL,
[reserved] [bigint] NULL,
[data_size] [bigint] NULL,
[index_size] [bigint] NULL,
[unused] [bigint] NULL,
CONSTRAINT [PK_t_rpt_table_spaceinfo] PRIMARY KEY CLUSTERED
(
[table_name] ASC,
[record_date] ASC,
[record_time] ASC
)
)
2 新建作业
新建作业,作业计划每天凌晨运行一次,每天记录表占用的空间情况,存储到上一步建立的表中
作业中执行的T-SQL代码为:
SET NOCOUNT ON
/创建临时表,存放用户表的空间及数据行数信息/
CREATE TABLE #tablespaceinfo
(
nameinfo VARCHAR(500) ,
rowsinfo BIGINT ,
reserved VARCHAR(20) ,
datainfo VARCHAR(20) ,
index_size VARCHAR(20) ,
unused VARCHAR(20)
)
DECLARE @tablename VARCHAR(255);
/使用游标,循环得到表空间使用情况/
DECLARE Info_cursor CURSOR
你的意思是不是想实施监控远程监视功能。如果只安装监控系统是无法实施监控远程系统
将监控和周界报警产品可以实现远程监控的报警功能
详细的说明和安装方式你咨询下三安古德小文。明白了吗
默认是c盘,但在应用中由于数据库会随时间变大,因此建议用户自建数据库应放在一个空间足够大的硬盘中,我们一般系统安装在
c盘,数据放在其它盘中,如d盘等。还有数据自动备份不要与用户数据库在同一盘中。等等,它的一切在于你的安排和经验。
尝试这样的思路:
假如你监控A表,将A表的所有ID写入一个检测表中
--创建表create table A_CheckUpdate(AID int,BinaryCheckSum int,Remark varchar(50))
--将表A的初始数据插入检测更新表中
insert into A_CheckUpdate select AID,Binary_CheckSum(),'' from A
--你写一个通信 每隔一段时间 比如5秒钟检查一次
--查询A表被更新过的记录
select from A_CheckUpdate
where exists(
select AID from A where AAID=A_CheckUpdateAID
and binary_checksum()<>A_CheckUpdateBinaryCheckSum)
--如果是查看insert 或者delete的数据 请查看A_CheckUpdate是否有多余的ID 或者缺少的ID
select AId from A left join A_CheckUpdate on aID=A_CheckUpdateID
where A_CheckUpdateID is null
select A_CheckUpdate Id from A right join A_CheckUpdate on aID=A_CheckUpdateID
where AID is null
以上就是关于怎样实时监控sqlserver数据库内记录的变化全部的内容,包括:怎样实时监控sqlserver数据库内记录的变化、如何实时监控远程access数据库数据变化、sqlserver数据库一般监控什么内容(数据库监控一般监控什么)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)