sql2000神奇的变慢,数据库在导入到其他机器没问题

sql2000神奇的变慢,数据库在导入到其他机器没问题,第1张

因为在使用过程中,索引会产生碎片,引响查询,你可以修复下索引。 另外,sql 2000性能上有问题,数据量达到一定的时候,也会变慢。 你可以考虑升级下数据库。或是删除部分不需要的历史记录。

这个和你数据库中数据量大小,读取方式(datareader通常比dataset快一点),以及SQL语句等条件都有关系,(sql语句写好了可以提高效率),另外,如果是远程数据库,网络因素也要考虑,其实C#读取数据库并不慢,只要你注意影响速度的因素,然后逐一去优化,其实也是很快的.还有,适当用缓存,也可以提高速度.

解答:

1:企业管理器->服务器->属性->连接->查询超时(改为0或一个较大的数)

2:ADO的连接超时属性connectiontimeout 设大点.

3:ADO的CommandTimeout设大点

也可

1、在企业管理器中,选择菜单上的 "工具 ",再选择 "选项 ";

2、在d出的 "SQL Server企业管理器属性 "窗口中,点击 "高级 "选项卡;

3、在 "连接设置 "下的 "登录超时(秒) "右边的框中输入一个比较大的数字,如 20。

你也可以考虑优化一下你的DB:

1、存储

将硬盘分成NTFS格式,NTFS比FAT32快,并看你的数据文件大小,1G以上你可以采用多数据库文件,这样可以将存取负载分散到多个物理硬盘或磁盘阵列上。

2、tempdb

tempdb也应该被单独的物理硬盘或磁盘阵列上,建议放在RAID 0上,这样它的性能最高,不要对它设置最大值让它自动增长

3、日志文件

日志文件也应该和数据文件分开在不同的理硬盘或磁盘阵列上,这样也可以提高硬盘I/O性能。

4、分区视图

就是将你的数据水平分割在集群服务器上,它适合大规模OLTP,SQL群集上,如果你数据库不是访问特别大不建议使用。

5、簇索引

你的表一定有个簇索引,在使用簇索引查询的时候,区块查询是最快的,如用between,应为他是物理连续的,你应该尽量减少对它的updaet,应为这可以使它物理不连续。

6、非簇索引

非簇索引与物理顺序无关,设计它时必须有高度的可选择性,可以提高查询速度,但对表update的时候这些非簇索引会影响速度,且占用空间大,如果你愿意用空间和修改时间换取速度可以考虑。

7、索引视图

如果在视图上建立索引,那视图的结果集就会被存储起来,对与特定的查询性能可以提高很多,但同样对update语句时它也会严重减低性能,一般用在数据相对稳定的数据仓库中。

8、维护索引

你在将索引建好后,定期维护是很重要的,用dbcc showcontig来观察页密度、扫描密度等等,及时用dbcc indexdefrag来整理表或视图的索引,在必要的时候用dbcc dbreindex来重建索引可以受到良好的效果。

不论你是用几个表1、2、3点都可以提高一定的性能,5、6、8点你是必须做的,至于4、7点看你的需求。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10040122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存