现在很多项目都用了SQL Server的Database project,所以将今天收获的一个优化过程和大家分享一下。

如果我们在存储过程或者视图中引用了系统表(比如sys.object),那么在部署的时候VS会给我们很多warning,如下图所示:

warning

如何解决呢?我们可以通过添加数据库应用的方式将Master.dbschema文件引用到project中,之后我们再进行deploy,这些warning果断消失了。

问题到这个阶段貌似是解决了,但是我们会发现以后每次打开solution的时候都会变得慢一些,CPU占用率也比较高,同时VS任务栏会显示以下提示:

clip_image002[8]

clip_image002[10]

其原因就是我们引用了Master.dbschema (8MB左右的xml格式的文件),VS解析起来比较辛苦。

我们该如何去优化呢?

首先,我们打开Master.schema文件,其结构如下:

clip_image002[12]

最关键的部分就在于Model节点内的内容,原始Master.dbschema文件包含了所有改数据库中的所有的objects的schema的描述信息,信息量非常大,但是事实上,我们所引用的部分非常少,常用的就是几个表,视图或者存储过程,所以我们移除掉所有不需要的部分,仅仅留下我们自己系统中引用过的schema,从而减少文件大小,达到优化的目的。附件为我自己修改过后的schema文件,只有25KB。

我们将修改过后的文件另存为一个以dbschema为后缀名的任意文件, 在database project的reference处引用咱们自定义的这个schema即可。之后我们再打开solution时,会发现加载速度和解析速度大大加快,部署的时候速度也快速许多,心情大好。

以上,希望这个经验能对你有所帮助,谢谢大家。

文件地址:https://files.cnblogs.com/WateringPig/SimplifyMaster.rar

posted on 2011-07-25 18:59  喝水的猪  阅读(1514)  评论(0编辑  收藏  举报