打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQL Server大数据量处理方案

我的数据量主表基本上每个月500万条,这样如果每个月不做Archive,查询和生成报表都非常慢,但客户又要求能够经常方便的查询历史纪录。

如何解决这样的难题?

方法一

根据经常用到的查询来设计数据存储方案,如经常查3个月以内的数据就建立一个作业,每天定时将3个月以前的数据导入历史表,万一查3个月以前的数据(应该比较少)就联表查询。

方法二

1.做个历史库,将部分数据转至历史库;
2.建视图关联当前库和历史库,需要查历史记录的时候就从这个视图中查;
3.前台可以做两个报表(当前的/所有的),数据源分别指向当前表和视图。

从2个数据库联合2个表来查询(union all)

 使用联结服务器:
  EXEC   sp_addlinkedserver   '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL   Server};SERVER=远程名;UID=用户;PWD=密码;'  
  exec   sp_addlinkedsrvlogin     @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'  
  GO  
  然后你就可以如下:
  select   *   from   别名.库名.dbo.表名  
  insert   库名.dbo.表名   select   *   from   别名.库名.dbo.表名  
  select   *   into   库名.dbo.新表名   from   别名.库名.dbo.表名  
  go

或直接:  
  select   *   from   OPENDATASOURCE(  
                    'SQLOLEDB',  
                    'Data   Source=远程ip;User   ID=sa;Password=密码'  
                    ).库名.dbo.表名

为避免因服务器不在线造成查询时间过长,可适当调整连接超时:
选中Microsoft   SQL   Servers-->工具栏,工具-->高级-->连接超时-->改为3000

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQl 跨服务器查询语句
Oracle&SQLServer中实现跨库查询
SQLServer的链接服务器技术小结
sql2005导(入、出)单表
设置允许SQL Server身份登录
Tushare使用入门
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服