Storage Area Networks (SANs) 101

Filed under: Podcasts — Brent Ozar at 5:01 pm on Sunday, October 26, 2008

When I was a database administrator, I saw the SAN as a fancy, expensive black box.  Well, it is, but in this podcast I give you some insights into that black box, tell you what kinds of things to ask about when moving your databases into that box, and how to refocus your SAN concerns from raid levels towards more basic things like response times.

 

Links from the presentation include:

You can subscribe to our podcast feeds here:

Technorati Tags: ,

Meet Performance Tuning Editor Denny Cherry

Filed under: Podcasts — Brent Ozar at 3:00 am on Sunday, October 26, 2008

Christian Hasker of Quest interviewed Denny Cherry, known around the web as MrDenny.  Denny Cherry specializes as a professional Microsoft SQL Server Database Administrator, and he recently became a SQL Server MVP, and now he’s the Performance Tuning Editor for SQLServerPedia.

In this podcast, Denny talks about some of his experiences at MySpace and Awareness Technologies and about how junior DBAs can work their way up the ladder.

 

You can subscribe to our podcast feeds here:

Kevin Kline on SQL Server Memory Troubleshooting

Filed under: Podcasts, SQL Server 2005, Tuning and Optimization — Brent Ozar at 6:05 am on Friday, October 24, 2008

Need to troubleshoot SQL Server 2005 memory settings?  Not sure where to look to measure SQL 2000 memory pressure?  Kevin lays out your options in today’s podcast.

 

You can subscribe to our podcast feeds here:

Kevin Kline on Influence and Authority

Filed under: Podcasts, Professional Development — Brent Ozar at 2:09 pm on Thursday, October 23, 2008

In today’s podcast, Kevin Kline talks about the difference between influence and authority, and why IT professionals need to work on their influence to succeed.

 

You can subscribe to our podcast feeds here:

We’re just enabling these feeds for the first time today, so let us know if you run into any subscription problems.

SQL Server 2008 Feature Matrix

Filed under: Administration, I'm a Newbie, Installation — Jason at 10:07 am on Wednesday, October 22, 2008

I’ve been asked quite a bit lately about which of the new features of SQL Server 2008 are available in the standard edition.  Rather than going feature by feature it is easiest to link to the MSDN article that includes a detailed feature breakdown.  As you’ll notice, most of the new and exciting features are enterprise edition only (isn’t that always the case) but those standard users also have some features to be excited about.

Here is the link:
http://msdn.microsoft.com/en-us/library/cc645993.aspx

Technorati Tags:

Optimizing your page file drive

Filed under: Tuning and Optimization — Brent Ozar at 6:45 am on Wednesday, October 22, 2008

We got a great question asking what cluster size to use for the page file drive: NTFS defaults to 4kb, but the customer was concerned that it may not be the proper size when dealing with a very large page file.  The system in question housed a multi-terabyte database with a lot of memory, so the customer was considering using a 64kb cluster size for more efficient reads and writes.  The question: what’s the best cluster size for a page file drive?

Not so fast - it’s a trick.

A properly tuned SQL Server should not be using the page file for memory.  If the server swaps to disk, that’s a huge performance hit.  If the server doesn’t have enough memory, then the DBA needs to turn down the maximum memory size until SQL Server doesn’t swap out to disk.  Sometimes the best answer to memory problems is to actually decrease the max memory size parameter.

When doing performance tuning, if the page file drive is seeing any read or write activity at all, that’s an indication to stop right there and focus on memory use.  Tuning the page file cluster size is like rearranging deck chairs on the Titanic.

A Great Database Testing Resource

Filed under: Uncategorized — KKline at 4:12 pm on Monday, October 20, 2008

Just representing for my crew on this blog posting.  It’s a bit old, but it’s a very valuable bit of info that I liked a lot.  Check out the half hour webcast, CS Techcast 18: Database Testing for the Developer’s Soul, featuring Andy Leonard, Microsoft MVP and co-author of several books including Professional Software Testing with Visual Studio 2005 Team System: Tools for Software Developers and Test Engineers, and where they talk about the importance of database testing.

 

They also talk about some major security gaffs involving malware on servers that led to identity theft and rigged searches on major web sites, plus new attacks against DNS, hacking Windows Server 2008 and the MacBook Air, and EnterpriseDB’s open source Postgres database gets new life with new funding and a competitive update. The webcast also brings you the “Worst Tech Move of the Week” going to Warner’s proposed music tax on ISPs, the “Weekly Tech Tip” brings you ways to improve page file performance in Windows, and disaster recovery planning gets “A Closer Look”.

 

http://www.cstechcast.com/home.aspx?Episode=18

Technorati Tags: ,

SQL Server experts breakfast panel at PASS

Filed under: Administration, Professional Development — Brent Ozar at 8:03 am on Friday, October 17, 2008

This year at the PASS Summit in Seattle, Quest Software is sponsoring an expert panel event on automating SQL Server processes. Sounds boring, right? Think again - here’s when you need to check out process automation:

  • You can’t hire help (either no budget or no available people) and you can’t keep up
  • Your number of servers keeps growing
  • You don’t know if every server got backed up in the last hour
  • You don’t have an index maintenance plan for rebuilds & defrags

I’m always amazed that Microsoft SQL Server has been around for so long, but there’s very few standardized automation scripts. So many of us have our own duct-taped SQL Server backup T-SQL scripts, have disdain for the built-in maintenance plan approach, and would never think to Google for an automation script instead of rolling our own.

The experts with their fancy opinions:

  • Allen White, SQL Server MVP and Trainer for Scalability Experts (moderator)
  • Kevin Kline, SQL Server MVP and Technical Strategy Manager, Quest Software
  • Buck Woody, Program Manager, SQL Server, Microsoft
  • Dan Jones, Product Manager, SQL Server, Microsoft
  • Thomas LaRock, Database Engineering Lead, ING Investment Management
  • Charley Hanania, Production Product Owner, SQL Server, UBS
  • Brent Ozar, SQL Server Domain Expert, Quest Software

Why am I on the list? Because I, for one, welcome our new robot DBA overlords.

When: Thursday, November 20, 2008
7:00 - 8:30 a.m. (breakfast served until 7:30)

Where: Seattle Convention Center
Room 613 (6th floor)

If you want the free eats, you gotta RSVP online for the event.

Technorati Tags: ,

Never assume anything when performance tuning

Filed under: Backup and Restore — Brent Ozar at 7:19 am on Friday, October 17, 2008

When taking over a new server or a server you haven’t worked with in a while, never assume anything on the server.

Start by looking at the Windows system event log.  Look for any red or yellow errors, read the error details, and think about how that might impact SQL Server performance.

Next, look at the Windows application event log.  Look for errors again, especially SQL Server errors.

This morning, I was working with a DBA who was having performance problems on his SQL Server, and the application event log showed transaction backup log failure warnings twice a day.  Even more interestingly, it didn’t show any transaction backup log messages - success or failure - the rest of the day.

This indicated two possible problems:

Scenario 1: His server was only set up to do transaction backup logs twice a day.  If so, the server would slow to a crawl during those t-log backups because there was so much to back up.  Regardless of the performance impact, that’s still a disaster recovery problem because if the server crashed, he was likely to lose hours of data.  Fixing that takes precedence over any performance problems.

Scenario 2: The transaction backups were set to run more often, but because of performance problems, the transaction log backups couldn’t keep up with the amount of transaction logging going on.  The backups will run until something goes wrong - I’ve seen t-log backups run on for hours.  If that was the issue, we needed to find out what was making the log backups run slowly - could be writing over a slow network connection, targeting a slow drive, or maybe the box just needed more oomph.

So how could I tell which scenario was the problem without asking him any questions, and just by looking at his event logs?  Post your guess in the comments, and I’ll circle back in a few days with the right answer - unless somebody guesses it first!

Memory From Every Angle

Filed under: Internals and Architecture, Tuning and Optimization — KKline at 10:10 am on Tuesday, October 14, 2008

It seems like questions always come up about how to monitor memory.  But each time the question comes up, it’s slightly different.

 

Here’s a sort of FAQ for memory questions:

 

1.  How can I figure out memory and CPU consumption by database?

a.  In SQL Server 2005, DMVs are of course the way to go.  Pre-SQL Server 2005, you will probably want to use PerfMon.

b.  Sys.dm_exec_query_stats with sys.dm_exec_sql_text will give per database object stats. Note that there can be ad-hoc statements executed against db which will be difficult to track

c.  Sys.dm_io_virtual_file_stats - File level IO stats per database file. You could track reads/writes this way

d.  Sys.dm_os_buffer_descriptors - Buffer pool information. You can derive this per database

2.  How do I find out memory consumption by worker thread?

a.  This is a tricky challenge because this memory is controlled by the kernel, not the buffer pool. The buffer pool does try to account for it as part of SQL Server’s set-aside which you sometimes override with -g.

b.  Once again, your best bet is the DMV sys.dm_os_threads.  It has two columns that help with worker thread stacks: stack_bytes_committed and stack_bytes_used.

3.  How can I track memory consumption by database object?

a.  SQL Server MVP and luminary, Kalen Delaney, once shared this query that shows consumption of the buffer pool in the local database:

 

— DEMO: Buffer counts by object & index.sql

— break down buffers by object (table, index)

SELECT b.database_id,

   database_name = CASE b.database_id

      WHEN 32767 THEN ‘Resource’

      ELSE db_name(b.database_id) END,

   p.object_id,

   Object_Name = object_name(p.object_id, database_id),

   p.index_id,

   buffer_count=count(*)

FROM sys.allocation_units a

JOIN sys.dm_os_buffer_descriptors b

   ON a.allocation_unit_id = b.allocation_unit_id

JOIN sys.partitions p

   ON a.container_id = p.hobt_id WHERE object_id > 99

GROUP BY b.database_id, p.object_id, p.index_id

ORDER BY buffer_count DESC

 

4.  What other techniques are there for learning about memory consumption?

a.  You should learn about DBCC MEMORYSTATUS discussed at http://support.microsoft.com/?id=907877.  (Thanks to Erland Sommarskog for pointing out this resource.)

b.  You should also read the excellent white paper entitled Troubleshooting Performance Problems in SQL Server 2005 Whitepaper located on TechNet at http://www.microsoft.com/technet/prodtechnol/sql/2005/tsprfprb.mspx.

 

I hope this helps.  Enjoy!

-Kev

Technorati Tags:

« Previous PageNext Page »