<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Slava Oks's WebLog</title><subtitle type="html" /><id>http://blogs.msdn.com/slavao/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/slavao/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2006-03-12T20:12:00Z</updated><entry><title>Changing gears</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2007/03/07/changing-gears.aspx" /><id>http://blogs.msdn.com/slavao/archive/2007/03/07/changing-gears.aspx</id><published>2007-03-07T19:15:00Z</published><updated>2007-03-07T19:15:00Z</updated><content type="html">You haven't heard from me in while and there is a reason. I moved from SQL Server's Storage Engine team to a new incubation team that is involved in exploring new directions in operating systems. This subject area has been always very fascinating for me as you easily might deduce from my previous posts. The new team is amazing. It is small but extremely talented. Chris is one of the lead architects on the team. (I imagine many of you know him from your CLR and SQLCLR experience) It was sad for me...(&lt;a href="http://blogs.msdn.com/slavao/archive/2007/03/07/changing-gears.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1829045" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="Q&amp;amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_amp_3B00_A/default.aspx" /></entry><entry><title>Q and A: Ratio between AWE Allocated and VM Committed/Reserved in DBCC MEMORYSTATUS output</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2007/01/02/q-and-a-ratio-between-awe-allocated-and-vm-committed-reserved-in-dbcc-memorystatus-output.aspx" /><id>http://blogs.msdn.com/slavao/archive/2007/01/02/q-and-a-ratio-between-awe-allocated-and-vm-committed-reserved-in-dbcc-memorystatus-output.aspx</id><published>2007-01-03T04:02:00Z</published><updated>2007-01-03T04:02:00Z</updated><content type="html">Q: What kind of ratio should you expect to see between AWE Allocated and VM Committed/Reserved? We are running 8GB with a cap of 7GB in the max server memory and yet the VM Committed is around 100MB. I was first shocked to see that the sqlservice in task manager only shows that SQL is using around 100MB and now that I have used MEMORYSTATUS I'm even more troubled.Does this mean that our server is starved for memory even though AWE can see almost all of the 7GB? On a side note we are seeing very high...(&lt;a href="http://blogs.msdn.com/slavao/archive/2007/01/02/q-and-a-ratio-between-awe-allocated-and-vm-committed-reserved-in-dbcc-memorystatus-output.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1401167" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/Memory+Management/default.aspx" /><category term="Q&amp;amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_amp_3B00_A/default.aspx" /></entry><entry><title>Q &amp; A: I am running on 64 bit and all of my tasks are waiting on SOS_RESERVEDMEMBLOCKLIST, What is going on?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/11/14/q-a-i-am-running-on-64-bit-and-all-of-my-tasks-are-waiting-on-sos-reservedmemblocklist-what-is-going-on.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/11/14/q-a-i-am-running-on-64-bit-and-all-of-my-tasks-are-waiting-on-sos-reservedmemblocklist-what-is-going-on.aspx</id><published>2006-11-14T21:29:00Z</published><updated>2006-11-14T21:29:00Z</updated><content type="html">This wait type represents waiting on multi page allocations inside of SQLOS's memory manager. As you remember from my description of memory manager's working internals, it has two major allocators single page allocator, SPA and multi page allocator, MPA. Majority of the time SQL Server internal code uses SPA, however in some cases it will use MPA, i.e. for example when request exceeds size of single page, 8KB. On 64 bit systems SQL Server internal code can potentially generate larger memory requests...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/11/14/q-a-i-am-running-on-64-bit-and-all-of-my-tasks-are-waiting-on-sos-reservedmemblocklist-what-is-going-on.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1076414" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/Memory+Management/default.aspx" /><category term="Q&amp;amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_amp_3B00_A/default.aspx" /></entry><entry><title>SQLOSDMV's Continue</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/11/14/sqlosdmv-s-continue.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/11/14/sqlosdmv-s-continue.aspx</id><published>2006-11-14T21:26:00Z</published><updated>2006-11-14T21:26:00Z</updated><content type="html">sys.dm_os_waiting_tasks One can run lots of interesting queries using this view. You can even use this view to perform deadlock detection that is not resolvable by deadlock monitor, DM. For example if you have tasks waiting on external resources such as extended stored procedures and blocking others from running. This type of deadlock DM can’t detect but you can! Q. How many tasks are currently waiting? select count (*) from sys.dm_os_waiting_tasks This query will give you an idea of how many tasks...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/11/14/sqlosdmv-s-continue.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1076371" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Scheduling" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Scheduling/default.aspx" /><category term="SQLOS's DMVs" scheme="http://blogs.msdn.com/slavao/archive/tags/SQLOS_2700_s+DMVs/default.aspx" /></entry><entry><title>Q &amp; A: Does SQL Server always respond to memory pressure?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/11/13/q-a-does-sql-server-always-respond-to-memory-pressure.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/11/13/q-a-does-sql-server-always-respond-to-memory-pressure.aspx</id><published>2006-11-13T23:39:00Z</published><updated>2006-11-13T23:39:00Z</updated><content type="html">Q: I thought I've seen reference recently to problems with SQL2005 not releasing memory when under pressure, and this was possibly due to the Lock Pages In Memory option. We have a server where this seems to be happening, i.e. SQL2005 uses all available memory and the server basically dies because there's no memory left for other processes. How do I make it work like SQL2000 where it will release memory when it detects memory pressure from other applications? A: The memory behavior is slightly different...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/11/13/q-a-does-sql-server-always-respond-to-memory-pressure.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1071488" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="Q&amp;amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_amp_3B00_A/default.aspx" /></entry><entry><title>SQLOS's DMVs Continue</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/09/28/776437.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/09/28/776437.aspx</id><published>2006-09-29T05:22:00Z</published><updated>2006-09-29T05:22:00Z</updated><content type="html">sys.dm_os_schedulers Q. Do I need to by more CPUs? In order to answer this question you have to find out if your load is really CPU bounded. Your load is really CPU bounded if a number of runnable tasks per each scheduler always greater than 1 and all of your queries have correct plan. The latter statement is very important, your load can be CPU bounded due to the fact that somehow optimizer generated bad plan – it can happen if your statistics out of date or you tried to perform handcrafted optimization....(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/09/28/776437.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=776437" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Scheduling" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Scheduling/default.aspx" /><category term="SQLOS" scheme="http://blogs.msdn.com/slavao/archive/tags/SQLOS/default.aspx" /><category term="SQLOS's DMVs" scheme="http://blogs.msdn.com/slavao/archive/tags/SQLOS_2700_s+DMVs/default.aspx" /></entry><entry><title>SQLOS's DMVs</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/08/22/713357.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/08/22/713357.aspx</id><published>2006-08-23T02:54:00Z</published><updated>2006-08-23T02:54:00Z</updated><content type="html">SQL Server 2005 has a large number of DMVs that you can take advantage of especially when you try to understand behavioral characteristics of your SQL Server 2005 installation. DMVs expose enormous amount of information but how can you make use of it? What questions you can answer using DMVs? So in order to make you life a bit easier, I would like to start series of posts dedicated to SQLOS DMVs with emphasis on actual problems. Following set of DMVs is exposed by SQLOS or SQLOS related infrastructures....(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/08/22/713357.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=713357" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQLOS" scheme="http://blogs.msdn.com/slavao/archive/tags/SQLOS/default.aspx" /><category term="SQLOS's DMVs" scheme="http://blogs.msdn.com/slavao/archive/tags/SQLOS_2700_s+DMVs/default.aspx" /></entry><entry><title>Talking points around SQL Server 2005 scalability </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/08/03/687625.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/08/03/687625.aspx</id><published>2006-08-03T18:09:00Z</published><updated>2006-08-03T18:09:00Z</updated><content type="html">Couple of weeks ago I did a talk on SQL Server 2005 scalability. The actual talk was not about the enormous amount of features that you can leverage in SQL Serve 2005 to make your application scale but rather how SQL 2005 achieves its scalability. In this post I present a set of talking points of the talk. Please let me know if you have questions. Enjoy! SQL Server 2005 Scalability “If you remove all global state your scalability will be linear” SQL Server 2005 Scalability n SQL Server 2005 is designed...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/08/03/687625.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=687625" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="SQL Server Scheduling" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Scheduling/default.aspx" /></entry><entry><title>Q &amp; A: I can't make SQL Server 2005 32 bit version to use all memory on the machine </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/08/03/687573.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/08/03/687573.aspx</id><published>2006-08-03T17:41:00Z</published><updated>2006-08-03T17:41:00Z</updated><content type="html">I’m currently using the RTM+SP1 x86-SQL2005 build on a server which has 32GB of physical memory. I notice that during ramp-up the memory usage (as seen under task manager) increases to about 28GB (i.e. “Available memory” reduces to 4GB) and stays there. Is there a way to get around this and make SQL use at least a part of the remaining 4GB?So far for the “max server memory (MB)” I tried values of 2147483647(default setting) and 30000. Both resulted in similar behavior as described above. Attached...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/08/03/687573.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=687573" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="Q&amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_A/default.aspx" /></entry><entry><title>Set of new features in SQL Server 2005 enabled by SQLOS</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/04/12/575185.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/04/12/575185.aspx</id><published>2006-04-12T21:57:00Z</published><updated>2006-04-12T21:57:00Z</updated><content type="html">Couple of weeks ago I had a chance to visit set of our customers and talk to them directly. It was an unforgettable experience. As a part of the visit I made set of presentations related to SQLOS and new features it enables in SQL Server 2005. I thought that some of you might be interested to take a look at the presentation so below is presentation's outline. Let me know if you have any questions. What is New? Dynamic affinity Load balancing Dynamic memory settings Native NUMA support SoftNUMA support...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/04/12/575185.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=575185" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="SQL Server Scheduling" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Scheduling/default.aspx" /><category term="SQLOS" scheme="http://blogs.msdn.com/slavao/archive/tags/SQLOS/default.aspx" /></entry><entry><title>Q and A: Enabling AWE settings for SQL Server 32 bit edition in WOW </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/04/12/575152.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/04/12/575152.aspx</id><published>2006-04-12T21:25:00Z</published><updated>2006-04-12T21:25:00Z</updated><content type="html">Q. A customer wants to run SQL 2000 SP4 in a Windows Server 2003 SP1 x64 edition. They did the installation without problems but SQL Server is not using more than 4GB of memory. Is it possible to enable AWE in this configuration? A. The answer is yes, you should follow exactly the same procedure as you would when running SQL Server 32 bit version on 32 bit OS. See http://msdn2.microsoft.com/en-us/library/ms175581(SQL.90).aspx for more information. In addition keep in mind that maximum amount of physical...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/04/12/575152.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=575152" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="Q&amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_A/default.aspx" /></entry><entry><title>Q and A: Some questions about output from dbcc memorystatus</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/03/19/555238.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/03/19/555238.aspx</id><published>2006-03-20T04:18:00Z</published><updated>2006-03-20T04:18:00Z</updated><content type="html">Recently I have recieved following question: A customer of mine is getting this output on an Itanium with 16GB of memory: Memory Manager KB ------------------------------ -------------------- VM Reserved 16979888 VM Committed 217928 AWE Allocated 14116272 Reserved Memory 1024 Reserved Memory In Use 0 Q. How can VM Committed be so much less than AWE Allocated, or is this counter broken when Lock Pages are used? A. The counter is not broken. The output above shows what API SQL Server uses to allocate...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/03/19/555238.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=555238" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="Q&amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_A/default.aspx" /></entry><entry><title>Q and A: SQL Server memory allocated outside of Buffer Pool, formerly known as MemToLeave</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/03/14/551394.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/03/14/551394.aspx</id><published>2006-03-14T21:14:00Z</published><updated>2006-03-14T21:14:00Z</updated><content type="html">Q. Under SQL Server 2000 Is the memtoleave concept still valid under 64-bit? A. Yes. If SQL Server’s component requests memory larger than 8 KB block, the block will be allocated outside of Buffer Pool. Remember, inside of SQL Server, Buffer Pool is preferable memory manager for dynamic allocations. However, it can only serve allocations that are equal or below size of 8 KB. In case when request exceeds 8 KB size, a block will be allocated by Multi Page Allocator from the area that some people call...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/03/14/551394.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=551394" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="Q&amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_A/default.aspx" /></entry><entry><title>Q and A: Do I need to run "sp_configure 'awe enabled', 1" to make 64 bit version of SQL Server use locked pages?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/03/13/550594.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/03/13/550594.aspx</id><published>2006-03-13T20:44:00Z</published><updated>2006-03-13T20:44:00Z</updated><content type="html">The answer is No. The source of possible confusion came from one of my previous posts: http://blogs.msdn.com/slavao/archive/2005/11/15/493019.aspx . I apologize for the confusion. In order to make 64 bit version of SQL Server leverage locked pages all you need to do is to give lock pages in memory privilege to an account under which SQL Server process runs. You don't need to run "sp_configure 'awe enabled', 1"....(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/03/13/550594.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=550594" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="Q&amp;A" scheme="http://blogs.msdn.com/slavao/archive/tags/Q_2600_A/default.aspx" /></entry><entry><title>Be Aware: 4GB of VAS under WOW, does it really worth it?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/slavao/archive/2006/03/12/550096.aspx" /><id>http://blogs.msdn.com/slavao/archive/2006/03/12/550096.aspx</id><published>2006-03-13T03:12:00Z</published><updated>2006-03-13T03:12:00Z</updated><content type="html">By now you have heard a lot about the fact that under WOW a 32 bit process can get 4GB of VAS. I agree this is great, but I would like you to be aware of something that might hit you really hard. As it turns out enabling 4GB VAS can be problematic due to either 32 bit app you are using or dlls 32 bit application might end up loading. In the past, past times, developers thought that 32 bit pointer can never exceed 2GB boundary and the max pointer is 0x7fffffff. This assumption was based on Windows...(&lt;a href="http://blogs.msdn.com/slavao/archive/2006/03/12/550096.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=550096" width="1" height="1"&gt;</content><author><name>slavao</name><uri>http://blogs.msdn.com/members/slavao.aspx</uri></author><category term="SQL Server Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/SQL+Server+Memory+Management/default.aspx" /><category term="Memory Management" scheme="http://blogs.msdn.com/slavao/archive/tags/Memory+Management/default.aspx" /><category term="Be Aware" scheme="http://blogs.msdn.com/slavao/archive/tags/Be+Aware/default.aspx" /></entry></feed>