??????????????????????IO?????????Physical Disk?????β????????Server??CPU??I/O?????????????????д??????????????????????????????????????????????????????SQL Server 2012 ?汾?У????????з?????????????????????????????????????????в?????????
?????????????????????з????????С??????????????????????????????????????????????????佻?????????????????????????????????????У????????о??????????е?????????????????????????????С?????????????????schema??????????????洢?????????????з???????????????????????sharding????????????÷????????????????????????????????????????????????е??????????в?????????????????????????????
????????????????SQL Server???Linked Server?????????MSDTC???????????????????Linked Server????????????????????????????????????????·??????MSDTC???????????????????Server?????ACID????????磬??????????д??? Server1??? Insert ?????? Server2?? Update ???? ????????????????MSDTC???Server1 ?? Server2????????????????????????MSDTC???Server1 ?? Server2????????Commit??
?????????????table dbo.Person ??????????????????????SQL Server???Column [PersonType] ????6???????????('IN'??'EM'??'SP')??('SC'??'VC'??'GC')??
????CREATE TABLE [dbo].[Person]
????(
????[PersonID] [int] NOT NULL??
????[PersonType] [nchar](2) NOT NULL??
????[FirstName] [sysname] NOT NULL??
????[MiddleName] [sysname] NOT NULL??
????[LastName] [sysname] NOT NULL
????)
????step1????Win10 MSDTC??Microsoft Distributed Transaction Coordinator??
?????ο???Win10 ??MSDTC?????????????
????step2??????????Server??????????????????????DBtest1 ?? DBTest2????DBTest1???Master DB????DBTest2???Slave DB??
--default instance
CREATE TABLE [dbo].[Person](
[PersonID] [int] NOT NULL??
[PersonType] [nchar](2) NOT NULL??
[FirstName] sysname??
[MiddleName] sysname ??
[LastName] sysname??
constraint   chk__Person_PersonType check([PersonType] in ('IN'??'EM'??'SP'))
);
--named instance
CREATE TABLE [dbo].[Person](
[PersonID] [int] NOT NULL??
[PersonType] [nchar](2) NOT NULL??
[FirstName] sysname??
[MiddleName] sysname ??
[LastName] sysname??
constraint   chk__Person_PersonType check([PersonType] in ('SC'??'VC'??'GC'))
);
????Step3????Master DB?У????Linked Server
--add linked server
exec sys.sp_addlinkedserver @server= N'db1'
??@srvproduct= N''
??@provider= N'SQLNCLI'
??@datasrc=  N'LJHPCNamedInstance1'
??@location= null
??@provstr= null
??@catalog= N'dbtest2'
--check
select *
from sys.servers
where is_linked=1
--drop linked server
--EXEC sys.sp_dropserver @server=N'db1'?? @droplogins='droplogins'
--add login
exec sp_addlinkedsrvlogin @rmtsrvname = 'db1'
??@useself=false
??@locallogin=null
??@rmtuser ='sa'
??@rmtpassword='sa'