惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
The Cloudflare Blog
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
F
Fortinet All Blogs
J
Java Code Geeks
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
小众软件
小众软件
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Vercel News
Vercel News
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队

博客园 - 谢堂文(Darren Xie)

Camstar MES 5.8 發現Ajax事件失效 验证(C#和正则表达式) 新MES已上線 Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine Microsoft SQL Server Reporting Services (SSRS)报表技巧之在图表中增加参考线 SQL调优日记之发挥SQL性能与你的写法有关--对比三种方式实现相同功能 想个法子找出性能差的SQL T-SQL 日期处理总结 从MS SQL删除大数据说开去 一步一步用C#写一个检查SQL Server假死警报服务 MM的Windows 7 登录密码忘记之后 基于工作实际需求的Ext.Net和C#搭配应用之一 取出网域(AD)中所有计算机名及位置描述等信息 MS SQL自定义字符串拆分函数的惨痛经历 2012,我的C#全能Excel操作(无需Office,不使用XML) 代码注释规范 2012年开发者该做的11件事 取出AD中一個組的所有成員信息(C#實現功能配合EXT做的界面) 一個文件文件和路徑的類 C#路径/文件/目录/I/O常见操作汇总
MS SQL,数据库增长时众多表中谁是你关注的目标
谢堂文(Darren Xie) · 2012-09-11 · via 博客园 - 谢堂文(Darren Xie)

数据库就像是个小孩子,不知不觉的,可能就有了不能承受的压力。刚开始时,那快乐的时光如同刚入学时,只有快乐。但是,慢慢的、慢慢的,作业多了,关系复杂了。。。。。

系统上线三个月后,数据库的大小情况从一开始只是10M,现在已224G了,我觉得有必要写点什么。

我们有一个数据库,主要是用于MES的数据收集,也就是从自动化设备上收集数据。具体的逻辑我就不多说,回到正题,你建立了应用,就算你不是DBA,你也应该关心一下你用的数据库情况,一开始你系统上线时,可能你的数据库只是一张白纸,可能只有几个M的大小,你可以用sp_spaceused看看,系统也很顺,但是,看一下以下我用这个SP的结果:

image

以上是系统上线三个月后,数据库的大小情况,一开始只是10M,现在已224G了。

服务器的空间也是有限的,也是会有可能用完的,对于没有控制的使用要特别小心。当系统上线后,最需要关注的就是数据库了。你要知道数据的增长情况,可以使用的空间情况!什么时候需要增加索引以使系统运行更快,什么时候你应该对数据进行归档等等。

我们再说回sp_spaceused这个SP,我除了用它看数据库的数据情况外,还用它来看整个库的所有表各有多少记录、点用多大的数据空间、索引点用空间等。以下的T-SQL就可以实现看一个库所有表的记录情况!

    declare @tablename varchar(250);
    declare @tempTable table (nameinfo varchar(250)
            ,rowsinfo int
            ,reserved varchar(50)
            ,datainfo varchar(50)
            ,index_size varchar(50)
            ,unused varchar(50)
        );
    declare info_cursor cursor for 
    select [name] as Table_Name  
    from sys.objects where type='U' order by [name] 
    open info_cursor
    fetch next from info_cursor 
    into @tablename
    while @@fetch_status = 0
      begin
         insert into @tempTable(nameinfo,rowsinfo,reserved,datainfo,index_size,unused)
         exec sp_spaceused @tablename
         fetch next from info_cursor 
         into @tablename 
      end
   close info_cursor
   deallocate info_cursor   
   select * from @tempTable order by rowsinfo desc
   go

执行代码,发现我的122个数据表,1千万以上记录的已有7个,最大的已有1亿六千万记录:

image

实际上,这个还应该建立一个JOB来定时执行,保存下结果用于分析。接下来要做什么还是要做什么,目的是不要等数据库罢工!