杂记

对crm数据库中的数据大小分析:

USE CRM
GO
--查看表使用情况
IF OBJECT_ID('tempdb..#TB_TEMP_SPACE') IS NOT NULL DROP TABLE #TB_TEMP_SPACE
GO
CREATE TABLE #TB_TEMP_SPACE(
NAME VARCHAR(500)
,ROWS INT
,RESERVED VARCHAR(50)
,DATA VARCHAR(50)
,INDEX_SIZE VARCHAR(50)
,UNUSED VARCHAR(50)
)
GO
SP_MSFOREACHTABLE 'INSERT INTO #TB_TEMP_SPACE exec sp_spaceused ''?'''
GO
SELECT *
FROM #TB_TEMP_SPACE
ORDER BY REPLACE(DATA,'KB','')+0 DESC
GO 

  数据库全备份:

USE [master]
GO

/****** Object:  View [dbo].[Tool_FullbackupSyntex]    Script Date: 2015/12/23 11:42:23 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


ALTER view [dbo].[Tool_FullbackupSyntex]
as
with tempA as
(
--**记得要改这里的路径、路径对于每一个服务器都是不同的**--
select 'backup database '+name +' to disk = '+''''+ 'F:\backup\'+name+convert(varchar(100),getdate(),112)+'_with_compression.bak'+''''+' with init,compression; ' as cmd
from sys.databases where name not in('tempdb','master','model','msdb')),
tempB as(
select cmd ,ROW_NUMBER() over(order by cmd) rowNumber from tempA)
select * from tempB;



GO

  

USE [master]
GO
/****** Object:  StoredProcedure [dbo].[Tool_FullBack]    Script Date: 2015/12/23 11:41:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER procedure [dbo].[Tool_FullBack]
as
begin

    -- @i 用于记录一共有多少个数据库。(除tempdb以外)。
    declare @i as int=0;
    select @i=count(*) from dbo.Tool_FullbackupSyntex;
    -- @cmd 用于备份的动态脚本。
    declare @cmd as nvarchar(max)=' ';
    -- 加载动态脚本到 @tempA 表中。
    declare @tempA table(rowNumber int,cmd nvarchar(255));
    insert into @tempA(rowNumber,cmd)
    select a.rowNumber,a.cmd from dbo.Tool_FullbackupSyntex as a;

    -- 拼接动态脚本。
    while @i>=1
        begin
            select @cmd=@cmd+cmd from @tempA where rowNumber=@i;
            set @i = @i-1;
        end
    -- 执行备份
    exec(@cmd);
end;

  执行全备份:

USE [master]
GO

DECLARE    @return_value int

EXEC    @return_value = [dbo].[Tool_FullBack]

SELECT    'Return Value' = @return_value

GO

  监控数据库中进程相关的情况

 select  a.*,a.cmd,a.waittime,DB_NAME(a.dbid) as DBName,b.text as SQLText,cmd,a.last_batch from sys.sysprocesses as a cross apply sys.dm_exec_sql_text(sql_handle) as b
where cmd !='AWAITING COMMAND'

  

posted @ 2016-03-26 10:58  my_paradise  阅读(142)  评论(0编辑  收藏  举报