Saturday, February 25, 2012
64 Bit Subscriber Compability
going to be compatible for my current 32bit transactional replication.
In other words they are going to become subscribers of my current
replication. I read an article on microsoft that said that 64bit SQL
Replication will not work if the subscriber is a 32bit Edition of SQL, so i
am wondering if it will work the other way around.
Thank you,
Yovan Fernandez
My understanding is that it will work. Where is this article you are
referring to?
Hilary Cotter
Looking for a book on SQL Server replication?
http://www.nwsu.com/0974973602.html
"Yovan Fernandez" <YovanFernandez@.discussions.microsoft.com> wrote in
message news:54D866E8-BBF4-4799-8224-1CC3B7F7AB07@.microsoft.com...
> I am going to buy 2 new 4 way 64 bit boxes and i was wondering if they
are
> going to be compatible for my current 32bit transactional replication.
> In other words they are going to become subscribers of my current
> replication. I read an article on microsoft that said that 64bit SQL
> Replication will not work if the subscriber is a 32bit Edition of SQL, so
i
> am wondering if it will work the other way around.
> --
> Thank you,
> Yovan Fernandez
Thursday, February 16, 2012
5 key sprocs used for replication
reader and distribution agent in a transactional replication setup and in
one line explain what they do ?
Thanks
Hassan,
have a look at this page in BOL:
mk:@.MSITStore:C:\Program%20Files\Microsoft%20SQL%2 0Server\80\Tools\Books\tsq
lref.chm::/ts_sp_00_519s.htm.
HIlary's book will explain the relevant ones, but I'd recommend
sp_addpublication, sp_addsubscription, sp_addarticle, sp_browsereplcmds,
sp_replcmds. I won't describe them as BOL does a good job already. To see
the key stored procs for your particular scenario, create the publication
and subscriptions in Enterprise Manager then get EM to script out the
publications and examine the scripts.
Rgds,
Paul Ibison SQL Server MVP, www.replicationanswers.com
(recommended sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||Actually I wanted to know the key sprocs that run once the transactional
replication is already setup. Sprocs that run that the log reader and
distribution agents call. Also any other sprocs that run on a constant
basis.
"Paul Ibison" <Paul.Ibison@.Pygmalion.Com> wrote in message
news:ucJXtws6EHA.3236@.TK2MSFTNGP15.phx.gbl...
> Hassan,
> have a look at this page in BOL:
>
mk:@.MSITStore:C:\Program%20Files\Microsoft%20SQL%2 0Server\80\Tools\Books\tsq
> lref.chm::/ts_sp_00_519s.htm.
> HIlary's book will explain the relevant ones, but I'd recommend
> sp_addpublication, sp_addsubscription, sp_addarticle, sp_browsereplcmds,
> sp_replcmds. I won't describe them as BOL does a good job already. To see
> the key stored procs for your particular scenario, create the publication
> and subscriptions in Enterprise Manager then get EM to script out the
> publications and examine the scripts.
> Rgds,
> Paul Ibison SQL Server MVP, www.replicationanswers.com
> (recommended sql server 2000 replication book:
> http://www.nwsu.com/0974973602p.html)
>
|||Hassan,
the easiest way to setermine these procs is to run profiler, trap the
relevant events (SP:Starting...) and then run the distribution agent.
Rgds,
Paul Ibison
5 clients takes 5 times more
Hi there!
This is the scenario: I've got a dataset to handle data in aplication tier. I've sent transactional operations to data layer. In data layer I've got stored procedures that handle xml data to "keep" and "retrieve" data in/from database. This is the idea.
After some tests I get this code in DB:
DECLARE @.Documento as xml
DECLARE @.QtdReg as int
DECLARE @.Contador as int
SET @.Contador = 1
Set @.Documento = '
<ROOT>
<Mesas>
<CMesa>1</CMesa>
<CodMesa>1</CodMesa>
<Designacao>TESTE</Designacao>
<NPessoas>5</NPessoas>
<Ocupacao>0</Ocupacao>
<Designa>1 - Mesa 1 </Designa>
</Mesas>
<Mesas>
<CMesa>10</CMesa>
<CodMesa>10</CodMesa>
<Designacao>TESTE 10</Designacao>
<NPessoas>5</NPessoas>
<Ocupacao>0</Ocupacao>
<Designa>1 - Mesa 10 </Designa>
</Mesas>
</ROOT>'
SET @.QtdReg = @.Documento.value('count(//ROOT/Mesas)', 'int' )
print @.qtdreg
WHILE @.Contador<=@.QtdReg
BEGIN
SELECT
@.Documento.value('(//ROOT/Mesas[sql:variable("@.Contador")]/CodMesa)[1]','integer') Chave,
@.Documento.value('(//ROOT/Mesas[sql:variable("@.Contador")]/Designacao)[1]','varchar(255)') Designacao,
@.Documento.query('//ROOT/Mesas[sql:variable("@.Contador")]') RegistoXML
SET @.Contador = @.Contador + 1
END
I'm just doing selects (but, if I put an INSERT command before the SELECT I can insert data in DB).
The problem is: If I increment the xml data (I've tested with 500 rows - not inserted it here for space reasons - you can copy/paste one row and create 500 rows) it takes about 1 minute to handle all registers.
Worst, if I put this code in SQL SERVER MANAGEMENT STUDIO in 5 different queries (simulating 5 different clients) the time to execute the select takes 5 times more.
Am I doing this in the wrong way? Can you help me doing the right way?
Thank you very much for your time,
Rui Dias
Rui Dias VD wrote:
Hi there!
This is the scenario: I've got a dataset to handle data in aplication tier. I've sent transactional operations to data layer. In data layer I've got stored procedures that handle xml data to "keep" and "retrieve" data in/from database. This is the idea.
After some tests I get this code in DB:
DECLARE @.Documento as xml
DECLARE @.QtdReg as int
DECLARE @.Contador as int
SET @.Contador = 1
Set @.Documento = '
<ROOT>
<Mesas>
<CMesa>1</CMesa>
<CodMesa>1</CodMesa>
<Designacao>TESTE</Designacao>
<NPessoas>5</NPessoas>
<Ocupacao>0</Ocupacao>
<Designa>1 - Mesa 1 </Designa>
</Mesas>
<Mesas>
<CMesa>10</CMesa>
<CodMesa>10</CodMesa>
<Designacao>TESTE 10</Designacao>
<NPessoas>5</NPessoas>
<Ocupacao>0</Ocupacao>
<Designa>1 - Mesa 10 </Designa>
</Mesas>
</ROOT>'
SET @.QtdReg = @.Documento.value('count(//ROOT/Mesas)', 'int' )
print @.qtdreg
WHILE @.Contador<=@.QtdReg
BEGIN
SELECT
@.Documento.value('(//ROOT/Mesas[sql:variable("@.Contador")]/CodMesa)[1]','integer') Chave,
@.Documento.value('(//ROOT/Mesas[sql:variable("@.Contador")]/Designacao)[1]','varchar(255)') Designacao,
@.Documento.query('//ROOT/Mesas[sql:variable("@.Contador")]') RegistoXML
SET @.Contador = @.Contador + 1
END
I'm just doing selects (but, if I put an INSERT command before the SELECT I can insert data in DB).
The problem is: If I increment the xml data (I've tested with 500 rows - not inserted it here for space reasons - you can copy/paste one row and create 500 rows) it takes about 1 minute to handle all registers.
Worst, if I put this code in SQL SERVER MANAGEMENT STUDIO in 5 different queries (simulating 5 different clients) the time to execute the select takes 5 times more.
Am I doing this in the wrong way? Can you help me doing the right way?
Thank you very much for your time,
Rui Dias
Sorry, forgot to tell:
I'm using SQL Server 2005 and Visual Studio 2005
|||You should never write this type of loop. If you want to map one Mesas element to one row, please use the nodes() method as in:
SELECT
d.value('(CodMesa)[1]','integer') Chave,
d.value('(Designacao)[1]','varchar(255)') Designacao,
d.query('.') RegistoXML
FROM @.Documento.nodes('/ROOT/Mesas') as N(d)
(also please try to avoid // if you know the path).
Best regards
Michael