仓酷云

标题: MSSQL教程之SQL中两台服务器间利用毗连服务器 [打印本页]

作者: 只想知道    时间: 2015-1-16 22:39
标题: MSSQL教程之SQL中两台服务器间利用毗连服务器
虽然可以将一个droptable语句转换成先delete再删表,性能却会降低很多。这里我们用上面说道的另外一种可用数据:“操作前数据备份”。服务器


1:实行另外一服务器上的存储历程

execOPENDATASOURCE(
SQLOLEDB,
DataSource=远程ip;UserID=sa;Password=暗码
).库名.dbo.存储历程名

2:将材料拔出另外一服务器上的表中

select*into当地库名..表名fromOPENDATASOURCE(
SQLOLEDB,
DataSource=远程ip;UserID=sa;Password=暗码
).库名.dbo.表名

insert当地库名..表名select*fromOPENDATASOURCE(
SQLOLEDB,
DataSource=远程ip;UserID=sa;Password=暗码
).库名.dbo.表名

或利用联合服务器:
EXECsp_addlinkedserver别号,,MSDASQL,NULL,NULL,DRIVER={SQLServer};SERVER=远程名;UID=用户;PWD=暗码;


execsp_addlinkedsrvlogin@rmtsrvname=别号,@useself=false,@locallogin=sa,@rmtuser=sa,@rmtpassword=暗码
GO

(请注重下面的两步要同时运转)


然后你就能够以下:
select*from别号.库名.dbo.表名
insert库名.dbo.表名select*from别号.库名.dbo.表名
select*into库名.dbo.新表名from别号.库名.dbo.表名
go




3:

假如在事件里利用毗连服务器要加上

散布式事件:
双方启动dtc

setXACT_ABORTon
setANSI_NULL_DFLT_ONon
setANSI_WARNINGSon

BEGINDISTRIBUTEDTRANSACTION
select*fromOPENDATASOURCE(MSDASQL,DRIVER={SQLServer};SERVER=ip;UID=sa;PWD=暗码;).pubs.dbo.jobs
committran


在ORDERBY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDERBY方面也没什么作用)。
作者: 因胸联盟    时间: 2015-1-18 15:45
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
作者: 山那边是海    时间: 2015-1-22 08:06
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
作者: 再现理想    时间: 2015-1-30 23:56
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
作者: 飘飘悠悠    时间: 2015-2-6 17:21
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
作者: 变相怪杰    时间: 2015-2-17 14:53
总感觉自己还是不会SQL
作者: 只想知道    时间: 2015-3-5 20:27
两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
作者: 透明    时间: 2015-3-12 14:27
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
作者: 小女巫    时间: 2015-3-19 22:49
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2