可以这样解决1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要。
2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)。
3、升级硬件。
4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段。
5、提高网速。跨数据库使用比较简单,如ceshi数据库想使用Finance2014的A表,则使用SELECT FROM Finance2014dboA
跨服务器的使用,相对复杂一些 需要先连接服务器
EXEC sp_addlinkedserver 'srv_lnk','','SQLOLEDB','1921682249'EXEC sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','12345'
再设置保证存储过程能够使用
EXEC sp_serveroption @server='srv_lnk',@optname='rpc',@optvalue='TRUE'EXEC sp_serveroption @server='srv_lnk',@optname='rpc out',@optvalue='TRUE'
再跨服务器调用数据库表和存储过程如:
SELECT FROM srv_lnkAdboB 其中A为数据库B为表
EXEC srv_lnkAdboB 其中A为数据库B为存储过程首先要打开数据库所在服务器的IP和端口访问限制,例如mysql就要打开该服务器的3306外部访问权限,然后第二步更改项目的数据库连接地址:本地的一般是
localhost
:端口/初始数据库;访问其他服务器的数据库就是:ip:端口/初始数据库我问问,你B2表中的内容还需要1月的内容么?仅仅是从2月开始?
Ans:你在往A中插入数据库的时候自己要判断一下当前月份,如果是同一个月就把数据分别插入到A和B中。到了下个月之后,继续插入A的原表,但是B中新建一表来插入数据。
还有个疑问就是,你希望用代码实现还是其他?当然可以,但是前提是你得知道对方数据库的地址,登录名和密码,就可以在ASP中写程序来进行 *** 作,举个例子:
Dim objConn,myDSN
If NOT IsObject(objConn) Then
Set nmm_objConn = ServerCreateObject("ADODBConnection")
DSN = "Driver={SQL Server};Server=>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)