除了备份,数据库空间利用情况也是DBA们需要监视的另一方面内容,如果剩余空间太低,有时要采取一定措施。同样,SMO使得这件事非常容易,它把所有需要的数字展示为属性,尽管你需要在过程中做一些计算和转换。一些容量属性值是按MB单位显示的,而其他的是按KB显示的。那就是为什么代码中有些情况下按1024做了除法的原因。
你首先要声明一些变量,并连接到数据库: double dbLogTotalSize = 0; double dbLogUsedSpace = 0; Server svr = new Server(@”rrehak”); Database db……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
除了备份,数据库空间利用情况也是DBA们需要监视的另一方面内容,如果剩余空间太低,有时要采取一定措施。同样,SMO使得这件事非常容易,它把所有需要的数字展示为属性,尽管你需要在过程中做一些计算和转换。一些容量属性值是按MB单位显示的,而其他的是按KB显示的。那就是为什么代码中有些情况下按1024做了除法的原因。
你首先要声明一些变量,并连接到数据库:
double dbLogTotalSize = 0;
double dbLogUsedSpace = 0;
Server svr = new Server(@"rrehak");
Database db = svr.Databases["AdventureWorks2008"];
接下来,你需要遍历日志文件集合,累加这些文件以及剩余空间的大小,因为没有数据库属性包含这些总计信息:
foreach (LogFile lf in db.LogFiles) { dbLogTotalSize += lf.Size / 1024; // convert to MB dbLogUsedSpace += lf.UsedSpace / 1024; } txtLogSize.Text = dbLogUsedSpace.ToString("N2") + "/" + dbLogTotalSize.ToString("N2") + " MB used"; |
之后你就可以查看数据库明细了。要注意你需要从数据库总大小中减去在上面的示例中计算出来事务日志的总大小,得到数据文件的总大小:
double dbTotalSize = db.Size - dbLogTotalSize;//subtract log size double dbUsedSpace = dbTotalSize - db.SpaceAvailable/1024; txtDatabaseSize.Text = dbUsedSpace.ToString("N2") + "/" + dbTotalSize.ToString("N2") + " MB used"; |
输出示例大概是这样:“22.56/50.00 MB used。”
什么情况该使用SQL Server Management Objects
下面是一些SMO基本应用和可能利用的领域。那么,什么时候该使用SMO而不是(或者除了)T-SQL呢?下面是一些例子:
- 监视应用程序(服务器正常运行时间,数据库空间,备份)。
- 生成SQL Server文档(服务器,设置,数据库)的应用程序。
- 自动执行脚本(SMO中暴露了许多对象,它们可以写成脚本,并带有各种选项)。
- 收集和存储服务器和数据库趋势和统计的应用程序。
- 项目管理和维护功能,为SQL Server Express作为缺乏SSMS和SQL Server Agent的补偿。
不幸的是,SQL Server联机丛书中SMO相关文档很少,只包含有对类的基本描述。其中没有包括使用SMO的整体说明和建议,或者最佳实践。幸运的是,在CodePlex网站上有许多代码示例供你下载并在自己的SMO应用中开发和利用。
作者
翻译
相关推荐
-
SQL Server开发人员需要避免的八种习惯
应用程序开发人员对SQL Server性能的影响是巨大的,可能是积极影响,也可能负面影响。
-
微软下一代SQL Server新功能探秘
下一代SQL Server的设计初衷就是为了更好的可用性和扩展性,并添加了一系列的开发工具和商业智能工具。
-
使用SQL Server管理对象进行备份检查
SQL Server Management Objects(SMO)是一套.NET代码库集合,其中包含了可以访问和操作微软SQL Server所有领域功能的API类库。
-
NetApp SMO 应对Oracle数据管理难题
如果你的工作是满足 Oracle 环境的存储需求,你可能把大量时间花在解决数据库管理员、开发人员和测试人员的请求上。