Hi everyone,
Primary platform is 2005 under 64-bit.
I'm trying to figure out what does 'Processor Affinity' and 'I/O Affinity' means when you're viewing server properties. We've got eight processors.
Thanks for your comments,
We are currently looking at consolidating 10 servers into one cluster server.
Some servers may be busier than others. Is there any reason to split them up and give the busy databases specific CPUs or is it always better to have them on one instance?
I have a dual 64 bit quad core server with 16 GB of memory. We are going to run an application server and SQL Server 2005 SP2 CU4 64 bit on this hardware, but we only want to purchase a single CPU license for SQL Server. The obvious choice is to use the affinity settings to prevent SQL Server from using one of the CPUs.
Initially, the development team simply went into SSMS and unchecked affinity mask and affinity io mask for the first four processors. This appeared to work fine in their testing. A problem arose when we started monitoring the maintenance plan and saw that the database integrity check was failing. The root problem was this invalid state that the affinity masks were in.
I have seen a lot of documentation stating the SQL Server will ignore an invalid mask setting, but in our testing, it appears that SQL Server respects the setting. For example, when we set CPU 7 to be available for processing and IO, Performance Monitor showed that only CPU 7 was used during a load test.
So from our preliminary testing, it looks like SQL Server will use a single CPU for both processing and IO if you tell it to. Is there some other reason why these affinity settings need to be mutually exclusive? Is there a test I can run that can illustrate why?
I have recently upgraded my databases from SQL 2000 to 2005. In 2000, I could set the network affinity so that sql server was only accessible from one of the two network cards. I cannot find how to do this in sql 2005. Is there a way?
In my installation, I have two network cards in each server. The "A" network adapter connects to the "A" hub, and the "B" adapter connected to the "B" hub. Traffic on trhe "B" hub is my private, non-routable network, This is where I want the SQL Server traffic to run. The A hub traffic is the public network. This gives me the ability to isolate SQL Server from the outside world.
I've just updated my databases to V7.0 from 6.5. I am having some issues with CPU utilization after rebuilding the databases. I rebuilt the databases from scripts after modifying the scripts to deal with any SQL issues between the versions.
Symptoms:
When a bunch of stored procedures are executed the % Processor Time his 100% on a single processor system, the Processor Queue Length hits 13, the Batch Request/Sec starts at 20 and rises to 47 before dropping off, Context Switches go from 370/sec to about 833/sec before dropping off and there is an increase in page faulting.
My testing was done on a single processor but my real system is dual-300+ with 128Mb RAM. The database is only 40Mb and after running the index wizard there were no changes advised.
After reading a lot in help areas for MS and here I am not sure if this has to do with how SQL Server runs now (i.e. system configuration) or if it is a query issue with parallelism. I'm assuming query parallelism since the performance spikes occur when stored procedures are run. On a single processor is there a way to address this. Then, hopefully, I can deal with the real multiprocessor system.
If I install an instance of SQL Server on a box with 4 processors but specify in the licensing part of the installation procedure that it's a '2 processor license', does that really mean that SQL Server will only use 2 of the 4 processors? I ask because, having done this, if I check the SQL Server instance's properties, on the Processors tab, there are 4 processors ticked - giving the impression that 4 processors are being used by this SQL Server instance. Can anyone throw some light on this?
Another question... If I wish to reconfigure the same SQL Server instance from a 2 to a 4 processor 'per processor' license, how can this be done?
Every once in a while (every couple weeks or so) one of our SQL Server 2005 servers will have its performance take a dive. Response time on applications will slow way down. In checking €˜Task Manager€™ the CPU utilization will be up to 50 to 70 percent for the SQL server service. We have tried looking at €˜Perf Mon€™ there doesn€™t seem to be any consistent performance item that is out of whack. On occasion, it may appear to be a lot of paging going on, but I don€™t know what application is causing it. We€™ve looked at SP_who2 to see if there are any blocks, but there do not appear to be any. Though on occasion we will see a €˜Killed/roll-back€™ entry on €˜SP_who2€™ that has a lot of CPU cycles that, at least at one point in time, had a lot of counts against it.
In looking at a trace that we have set up, we don€™t see anything glaring that is held up or even a recurring theme (application) on the list that would point to a problem.
We find that by restarting the SQL Server service, this resolves the issue for another couple of weeks.
Is there something that I can look at that would tell me at least, what PC name is doing all of the IO against the database. I could then at least call the user and say €˜Hey, what are you doing€™ so that we can start to narrow down what is going on.
Regarding Standard vs Enterprise processor usage, I have read the SQL2K5 edition comparison articles that MS puts out, but I recently viewed a webcast that gave me cause for concern.
There was a webcast called "Selecting the Right SQL Server 2005 Edition", hosted by Michael Raheem, where he stated that although Standard edition allowed 4 processors (based on sockets, not cores) some index operations only leveraged one core at a time. So even if you have, let's say, 4 dual core CPUs (= 8 processor cores), only one core at a time will be used, and the rest will be idle during that operation.
Can anyone give a better idea of which operations are full multi-core in SQL Standard. Michael mentions indexing - does that mean strictly explicit reindexing operations which are part of a maintenance routine, or does that apply to index operations during normal inserts and/or updates?
We will be using this to run a backend for a commercial website, and we need to be sure whether we can get by with Standard or we need to make the investment in Enterprise.
I'm trying to set affinity to mssearch.exe in our Windows 2000 Advanced server (4cpus), but i am getting an "Access denied error". I checked the login which has administrator rights to the box.
It would be a great help if anyone can tell how to fix this.
Can u pls tell me How to Get the SQL Affinity Mask value in Sql 2005.
and what is the table/views name that store this info.
for SQL 2000 , we were using following query:
SQLStatement.printf("select c.value from master..sysconfigures c, master..spt_values v," "master..syscurconfigs r where v.type = 'C' and v.number = c.config and v.number >= 0 " "and v.number = r.config and v.name ='affinity mask'");
I was browsing Microsoft's SQL Server site, looking forsome details about SQL Server 2005. Didn't find whatI was looking for...I'm thinking about moving an existing SQL Server 2000workload to a new box, using SQL Server 2005, andmaybe the 64-bit version.My questions are:1. What is the current target date for release of SQL Server 2005?Will 64-bit ship when 32-bit ships?2. Will 64-bit SQL Server 2005 require a special versionof Windows Server 2003 (e.g. Windows Server 2003 Enterprise x64)?Will it work with both Intel and AMD processors?3. How many CPUs, and how much memory, will be supported bySQL Server 2005, 32-bit and 64-bit, on each OS that can runSQL Server 2005.I'm looking for a chart here, something like the chart onpage 117 of Kalen Delaney's "Inside SQL Server 2000" book.SQL Server 2005 SQL Server 2005Feature Enterprise 32-bit Enterprise 64-bit------------------- ----------------- -----------------CPUs supportedWin Srvr 2003:Win Srvr 2003 Adv:Win Srvr 2003 Ent x64:Physical memorysupportedWin Srvr 2003:Win Srvr 2003 Adv:Win Srvr 2003 Ent x64:Has Microsoft published this info, and I just can find it?
We have recently tested upgrading our web service from sql 2000 to 2005 sp1. The upgrade went smoothly enough, however we now have the problem of the sqlserver.exe process taking 90-100 % of the processors time, but using only 100 MB of memory.
We have 6GB available and we are running the enterprise editions of Windows 2003 and SQL 2005.
Machine specs,
DL380 G2, 2 X 2.8 Ghz Zeon, 6GB ram, Raid 5, database partition of 140 GB, Log partition of 35 GB.
Db is 25 GB, Log is 12 GB. Largest table has 32 million rows.
We are seeing that the %Processor Time for the sqlservr process in Perfmon is over 100%. I am trying to understand how can the percentage of use be over 100%, and why it is over 100%. Someone told me that if the machine has multiple processors, that it will be over 100%. If that is the case, how can I determine what the maximum and normal values are? If I have 4 processors, does that mean 400% is the max? Does not make sense since it is suppose to be a percentage value...
Could someone explain to me how the CPU Utilization value is being measured, and if it is going over 100%, why that is and how I can determine what the threshold should be for monitoring?
This is weird situation for me as i can access my database server from 32- bit processor and its working fine but when i try to connect through 64 bit processor it throws the following error : Please help. I am using enterprise library january 2006 to access database.
An Error has occured while stablishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow Remote Connections . (provider : Named Pipes provider,error: 40 - Could not open a connection to SQL Server)
Hi everybody, I have a mirroring set up for around 30 databases in a 64 bit - 2 powerfull servers scenario - wih latest sp2 + hotfix. Mirroring works perfectly most of the times but when the principal is getting busy during the busy period of the day all of a sudden the processor on the mirror jumps to 100% and stays there for a long time - there are no live databases on the mirror server - all the databases are in mirrored mode. The principal server processor is less than 5% all the time. The network load between the principal and the mirror is also in normal limits. The principal server is dedicated to SQL but the mirror has other things too but the other processes use up maximum 15-20% of the CPU and when I stop SQL Server in one of those moments when the CPU jumps to 100% everything comes back to normal so it's clear that the issue is SQL on the mirror. Any ideas would be greatly appreciated.
I am looking at running SQL Server 2005 Standard Edition in a clustered environment (2 nodes) and am not sure if the 4 processor limit applies to the number of processors per node or the number of processors it will run on in the entire cluster. Could someone please clarify this for me?
"Error: 8624, Severity: 16, State: 1 Internal Query Processor Error: The query processor could not produce a query plan. For more information, contact Customer Support Services."
I have traced this to an insert statement that executes as part of a stored procedure.
INSERT INTO ledger (journal__id, account__id,account_recv_info__id,amount)
There is also an auto-increment column called id. There are FK contraints on all of the columns ending in "__id". I have found that if I remove the contraint on account__id the procedure will execute without error. None of the other constraints seem to make a difference. Of course I don't want to remove this key because it is important to the database integrity and should not be causing problems, but apparently it confuses the optimizer.
Also, the strange thing is that I can get the procedure to execute without error when I run it directly through management studio, but I receive the error when executing from .NET code or anything using ODBC (Access).
I have a unique problem while connecting to oracle source with a 64 bit processor. I can connect to the oracle from the command prompt in the 64 bit processor but not from SSIS.
The acutal problem is, when check the properties of the connection manager and provide a provider for oracle, and then provide username and password and click on test connection. I get the following error:
"Test Connection failed because of an error in initializing provider.ORA-06413: Connection not open"
We've had a problem for a few months now that has completely stumped us. We are running a heavily cursored massive data manipulation process on a 32 bit SQL Server instance running on a virtual machine, running ontop of VMWare, with the following specs
Processors: 2x2674MHz processors Memory: 4GB RAID 10 disk config
When we run our process on this machine, in total it runs in 30 hours.
When this process is run on another 32 bit server with the following specs
Processors: 8x3658MHx processors Memory: 8 GB SAN w/ RAID 5 disk config
It runs 25% slower
But here is the real kicker. When this process is run on a 64 bit server with the following specs
Processors: 8x3658MHz processors Memory: 8 GB SAN w/ RAID 5 disk config
It runs 75% slower.
This process consists solely of stored procedures written in TSQL. The weird thing is that on our smaller server, the CPUs' % utilization are evenly balanced (at 20-30%) when this large data manipulation process is running. However on the bigger servers, SQL Server latches onto a single processor and doesn't load balance across other processors. Such that what we're seeing is that only one processor out of the eight will be utilized and it will be throttled at 90% while the other 7 are at zero.
The default configuration settings in all three places.
Has anyone ever seen any behavior like this, where only one processor gets used by SQL Server during processing? Granted our processes are single threaded b/c they are using cursors but, it seems that the single thread shouldn't be restricted to one processor.
Hello,I'm trying to install the SQL Server 2005 Standard edition and while I can easily install the first part of the package, the document.write(L_LINK_RUNINSTALL_VAR_TEXT) Server components, tools, Books Online, and samples, when I click to install the Run the SQL Native Client Installation Wizard it tells me this:This Microsoft sql server native client package is not supported on the current processor type I have Windows XP64bit with IIS running on 32bit now. Why does it do that and how I can get around it ? :) Thanks.
Hello! We are having problems with a single SQL Server where the Server properties will not save, and always revert to the default. It occurs only on those tabs with "configured" and "running" options at the bottom. Other tabs will keep the settings we custom. The big problem is with the memory and processor tabs which even when we've made only a single change and stopped and started the service, reverts back to a default. Any clues - we are logged in as "sa" and have not removed the SA priviledges.
Help;Im New with a company and the sql server ismaxing out the cpu'sWe have 3 web servers load balanced....large volume of datathe current PropertiesComputer:4 amd 2.88 processors4 g MememoryRecomendations of good sql setupmemory, cpu etcThank youmike
Is there no longer a graphic interface for the parameters that are output with sp_configure? There are many options that are settable that are not in the Sql Server Propreties, but these items were in the 6.5 graphic interface through EM ex. number of open objects. Is there a script to save these settings so the installation can be recreated?
DECLARE@Stage TABLE ( RowID INT IDENTITY(0, 1) PRIMARY KEY CLUSTERED, Data VARCHAR(90), Section INT )
INSERT@Stage ( Data ) EXECxp_cmdshell 'ipconfig /all'
DECLARE@Section INT
SET@Section = 0
UPDATE@Stage SET@Section = Section =CASE WHEN ASCII(LEFT(Data, 1)) > 32 THEN @Section + 1 ELSE @Section END
SELECTMAX(CASE WHEN x.minRowID IS NULL THEN NULL ELSE s.Data END) AS Header, MAX(CASE WHEN s.Data LIKE '%Host Name%' THEN RTRIM(SUBSTRING(s.Data, 45, 90)) END) AS HostName, MAX(CASE WHEN s.Data LIKE '%Media State%' THEN RTRIM(SUBSTRING(s.Data, 45, 90)) END) AS MediaState, MAX(CASE WHEN s.Data LIKE '%Description%' THEN RTRIM(SUBSTRING(s.Data, 45, 90)) END) AS [Description], MAX(CASE WHEN s.Data LIKE '%IP Address%' THEN RTRIM(SUBSTRING(s.Data, 45, 90)) END) AS IPaddress, MAX(CASE WHEN s.Data LIKE '%Physical Address%' THEN RTRIM(SUBSTRING(s.Data, 45, 90)) END) AS PhysicalAddress FROM@Stage AS s LEFT JOIN( SELECTMIN(RowID) AS minRowID FROM@Stage GROUP BYSection ) AS x ON x.minRowID = s.RowID WHEREs.Section > 0 GROUP BYs.Section E 12°55'05.25" N 56°04'39.16"
I'm logged in as 'sa' and I'm using Microsoft Sql Server Mgmt Studio. I've established a Linked Server using Provider MSDASQL, and I'm able to retrieve data from the linked server. However, when I attempt to set the properties for my linked server, I get the following error message.
Adhoc updates to system catalogs are not allowed. (Microsoft SQL Server, Error: 259)
I'm not directly accessing the system catalogs (as far as I can tell), I'm actually using the Linked Server Properties user dialog to change the Server Options. Any help is appreciated.