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

推荐订阅源

Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
罗磊的独立博客
雷峰网
雷峰网
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
B
Blog RSS Feed
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
D
Docker
Recent Announcements
Recent Announcements
T
Tailwind CSS Blog
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
小众软件
小众软件
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
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来定时执行,保存下结果用于分析。接下来要做什么还是要做什么,目的是不要等数据库罢工!