The relationship between tempdb and replication slow response alert.

marrowyung
marrowyung used Ask the Experts™
on
hi,

we keep having replication unresponsive alert from SQL server as I recalled that the replication job alert show this as normal before but it said Tempdb contention, but I can't find the related record any more.

any resource can help to determine this or measure it?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
It's your complex Merge Replication with CDC?
Do you have the exact error message?
marrowyungSenior Technical architecture (Data)

Author

Commented:
no.

it just merge replication slow and I am trying to see if enhancing tempdb can help.
Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
I guess you should follow the usual recommendations for tempdb:
  • Isolate tempdb in a dedicated and fast disk
  • Have as many data files as the server has processors, till a maximum of 8
  • Having all files with the same size
Expert Spotlight: Joe Anderson (DatabaseMX)

We’ve posted a new Expert Spotlight!  Joe Anderson (DatabaseMX) has been on Experts Exchange since 2006. Learn more about this database architect, guitar aficionado, and Microsoft MVP.

marrowyungSenior Technical architecture (Data)

Author

Commented:
hi,

yes, I have all that.

but one thing:

"Have as many data files as the server has processors, till a maximum of 8"

 that one should be only for SQL 2016 and above.

we all talking about .mdf and .ndf but how about log ? all data writes to log first and then committed to the data file.

how about as much tempdb log file as tempdb data file? and all equal size ?

this might also solve the tempdb log contention problem.
Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
that one should be only for SQL 2016 and above.
No. That's a rule that DBAs are using since at least SQL Server 2005.


we all talking about .mdf and .ndf but how about log ? all data writes to log first and then committed to the data file.

 how about as much tempdb log file as tempdb data file? and all equal size ?
The rule is only for data files. There's no sense to create more that a transaction log file since it's sequential writing (the engine can't write in more than a transaction log file at a time).
marrowyungSenior Technical architecture (Data)

Author

Commented:
"No. That's a rule that DBAs are using since at least SQL Server 2005."

what I know there are only 3 x rules for tempdb:
1) number of tempdb file = number of CPU core.
2) number of tempdb file = 1/2 number of CPU core.
3) number of tempdb file = number of CPU socket,

I know in SQL 2016, default number of tempdb file is 8 and we no need to calculate any more, and just keep adding tempdb if tempdb contention is  found.

that's why I don't' understnad what you said.

"There's no sense to create more that a transaction log file since it's sequential writing (the engine can't write in more than a transaction log file at a time)."

tempdb data file is parallel write ?
Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
what I know there are only 3 x rules for tempdb:
 1) number of tempdb file = number of CPU core.
 2) number of tempdb file = 1/2 number of CPU core.
 3) number of tempdb file = number of CPU socket,
So if you have for example a server with 4 cores in 2 sockets, how many files would you create?

I know in SQL 2016, default number of tempdb file is 8 and we no need to calculate any more, and just keep adding tempdb if tempdb contention is  found.
This is for facilitate the life on non-DBAs :) And I bet that you don't see there more than one transaction log file, do you?

tempdb data file is parallel write ?
Any SQL Server database is, since it has more than one data file.
marrowyungSenior Technical architecture (Data)

Author

Commented:
"So if you have for example a server with 4 cores in 2 sockets, how many files would you create?"

it is a total of 8 cores, so 8 tempdb files, but I am more worry about the tempdb log files, as data write to that first.

"This is for facilitate the life on non-DBAs :) And I bet that you don't see there more than one transaction log file, do you?"

yes, it is for not that experts DBA.  

sorry you lost, I see a lot of situation where we have more than one log file and that's why I ask if it really helps.

you know now if I run who is active, you can see query from time to time write to tempdb log, this make me worry/think about one more tempdb log files to speed up the tempdb operation.

"Any SQL Server database is, since it has more than one data file."

just the log is not ...

do you know if it is in a round robin manner ?
marrowyungSenior Technical architecture (Data)

Author

Commented:
"This is for facilitate the life on non-DBAs :) And I bet that you don't see there more than one transaction log file, do you?"

can you tell me why people would like more than 1 tempdb log files ?
IT Engineer
Distinguished Expert 2017
Commented:
I don't know why are you insisting on this one but there's no performance advantage AT ALL to have more than one transaction log file no matter what database is it.
Transaction log is being written sequentially so parallel writing is not possible. You're only losing time if trying to do something that's not possible.
Vitor MontalvãoIT Engineer
Distinguished Expert 2017

Commented:
can you tell me why people would like more than 1 tempdb log files ?
Besides you and don't know anybody that like to have more than 1 tempdb log file. The only situation that I can think that justifies a second transaction log file is when the disk is full and for emergency you'll need to create a 2nd transaction log file in another disk for an immediate workaround.
marrowyungSenior Technical architecture (Data)

Author

Commented:
Vitor Montalvão,

"You're only losing time if trying to do something that's not possible."

ok, this is good answer then..

I just see TEmpdb contention message in replicaiton and I am not sure if I use create more log file instead of data files.

"The only situation that I can think that justifies a second transaction log file is when the disk is full and for emergency you'll need to create a 2nd transaction log file in another disk for an immediate workaround."

for emergency situation, like what we have today, we just kill spid and shrink log.

then tempdb fine.
marrowyungSenior Technical architecture (Data)

Author

Commented:
tks victor.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial