The issue I'm going to pose here has to do with SQL Server allocated memory BEING EXHAUSTED by an application (a simple data receiver from GPS units) when the number of units connecting to it is considerably increasing.
This happens to an extent that no more connections from the units are valid and therefore lots of data (Afterwards) is being lost.
This causes a real problem with the installations and the projects which are running the system.
I will hereby post all of the info which might be useful for any Database Experts among you, so you can perhaps help me figure out the source(s) of the mentioned problem, and possible solution(s) of the issue.
1- The Operating System used:
Windows 2003 Server (Ent. Edition)
2- The Database Server used:
Microsoft SQL 2000 Server
3- The amount of memory:
1 GB (but on some sites there are 4 GB and the same problem
is faced)
4- The conditions where the issue happens
When the amount of the received data - which gets written to
the SQL Server tables - exceeds a certain limit.
5- Number of applications used:
We are using two applications:
a- The receiver, which is a simple application that only
receives the data from the GPS units installed at the cars
of the clients' fleet(s), and writes them to the database
(Day and Night - running all the time), so the memory used
gets bigger and bigger till it floats the memory used by
MS SQL Server 2000. As a result of this the connections
made from the units furtherly to this point (to the receiver)
are not being received and written to the database.
b- the other application is quite heavy.. it does data
management on SQL Server 2000 and exhausts the CPU.
It reads from tables and makes analysis for GPS data...
This is done while "vehicle tracking".. so it makes
calculations on the received data and stores them into
output tables.
6- The programming language used in writing these 2 applications:
Delphi 7
7- What are we doing right now to handle this problem?
We need to flush the memory on periodical basis.
This is being done by stopping the SQL Server, or by
restarting the PC.
And it is not solving the problem entirely, especially that
there must be a way to handle this.
BTW, the memory is not being flushed when we turn the
application off.
8- What do we need to know?
a- We've found, after research, that there are "Temporary tables" or
objects in SQL Server 2000, that the DB system creates.. also page
files, and temp tables.
What are these for? And does handling them in a certain manner help
solve the problem?
b- Is there a way to monitor our applications to see where they are
increasing the usage of memory and how this is happening?
c- Is there a script that writes to the database that we can use to see if
the problem is from our applications? And in case it is, then is there a
command we should write or a function or script we should run in order
to flush the MS SQL 2000 Server periodically, so that it doesn't flood?
What comments can you have on this issue?
Are there solutions at hand?
I thank everyone for trying to help!
All the best :beer: :beer:
TD.
P.S. you can write to me at: database1980 (AT) hotmail (DOT) com
Please any one can help me ?I have multiuser application ( VB 6.0 ) on SQL Server 2000 running.
Last night my Sql Server was writting info on the Log file of one database when the power accidentally shut down. In fact, the server was executing one Microsoft Data Transformation Service ( DTS ) which transfers data from one table to another.
This morning when the users tried to work with this database everything went wrong... I've not been able to attach MDF AND LDF files to SQL Server 2000 Desktop Engine.
Looking for what happened I found those Info/Error LOG events:
A)Starting up database 'pcserveis'.
B)ex_raise2: Exception raised, major=34, minor=48, severity=21, attempting to create symptom dump C) "The transaction ( Process Id 5 ) was left in "interblockade" in Lock resources with another process and was chosen as subject of the "interblockade". Execute the transaction again." ( Sorry about wrong words , i'm using a translation tool from spanish ) D) Could not undo log record (5019077:221:133), for transaction ID (0:15254626), on page (1:1917), database 'pcserveis' (database ID 11). Page information: LSN = (5019072:426:5), type = 1. Log information: OpCode = 2, context 1.. ( Error: 3448, Severity: 21, State: 1) E)Error while undoing logged operation in database 'pcserveis'. Error at log record ID (5019077:221:133).. (Error: 9004, Severity: 23, State: 7)
F)An error occurred while processing the log for database 'pcserveis'..
sql server 2000 is running on windows server 2003 ... 4gb of memory on server .... 2003 was allocated 2.3gb nd sql server was allocated (and using all of it) 1.6gb for total of approx 4gb based on idera monitor software ... all memory allocated betweeen the OS and sql server .... then 4 more gb of memory added for total now of 8g ... now idera monitor shows 1.7gb for OS and 1.0 gb for sql server ..... 'system' info shows 8gb memory with PAE ... so I assume that the full 8gb can now be addressed .... why are less resources being used now with more total memory .... especially sql server ..... i thought about specifying a minimum memmry for sql server but i amnot convinced that would even work since it seems that this 1gb limit is artificial .... it it used 1.6 gb before why would it not use at least that much now ??
Our SQL server keeps crashing with the following error. When it crashed it completely shut down the server. Could you please give me advice on how to stop this from happening again? I would like to thank in advance for your help.
A MS DTC component has encountered an internal error. The process is being terminated. Error Specifics: A non-MS DTC XA Library threw an exception in function olog ntdll!KiFastSystemCallRet + 0x0 + 0xd58c3c0
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Here is the information of our server
OS Name Microsoft(R) Windows(R) Server 2003, Standard Edition Version 5.2.3790 Service Pack 1 Build 3790 Other OS Description Not Available OS Manufacturer Microsoft Corporation System Name SQL2387 System Manufacturer Dell Computer Corporation System Model PowerEdge 2850 System Type X86-based PC Processor x86 Family 15 Model 4 Stepping 3 GenuineIntel ~3790 Mhz Processor x86 Family 15 Model 4 Stepping 3 GenuineIntel ~3790 Mhz Processor x86 Family 15 Model 4 Stepping 3 GenuineIntel ~3790 Mhz Processor x86 Family 15 Model 4 Stepping 3 GenuineIntel ~3790 Mhz BIOS Version/Date Dell Computer Corporation A04, 9/22/2005 SMBIOS Version 2.3 Windows Directory C:WINDOWS System Directory C:WINDOWSsystem32 Boot Device DeviceHarddiskDmVolumesSQL2387Dg0Volume1 Locale United States Hardware Abstraction Layer Version = "5.2.3790.1830 (srv03_sp1_rtm.050324-1447)" User Name Not Available Time Zone Eastern Standard Time Total Physical Memory 4,095.08 MB Available Physical Memory 1.75 GB Total Virtual Memory 1.83 GB Available Virtual Memory 3.81 GB Page File Space 2.00 GB Page File C:pagefile.sys
I have SQL Server 2000 STD installed on a Windows Server 2003 STD machine. It's essentially the only app on this box. I have 4GB of RAM installed. SQL is configured to dynamically allocate memory. I run a batch file daily to restart the SQL services as SQL does not seem to release memory once it's got it. I don't think this is a problem because, like I said, it's basically the only app. But I want to make sure my OS memory settings and SQL's memory settings are optimized. Will adding the /3gb switch to the boot.ini file make a difference? Also, can someone educate me a little on PAE and AWE? Thanks
Every day or two I have to restart my SQL Server because users are receiving timeouts and very slow page loads. My mem usage in Task Manager show that SQL Server is at 1,200,000k compared to 400,000k when I restart it. Performance Monitor also shows that Buffer Manager/Target Pages and Total pages are maxed out. Any advice? Thanks!
We have a SQL Server 2000 that has been working nice without any issues. Lately we noticed the fact that the amount of memory that it is using has increased and once it took down the web server as the total amount of memory used was 2G. Due to this fact I have set Memory Max to 500MB. Now as I look in Task Manager the Memory usage is at 530396k which is 518MB. Any reason why would it exceed the 500MB?
What we did before was to stop the SQL Server and restart it, and it takes about 2 days until it gets back to +500MB.
We have a Windows 2003 Enterprise server with SQL Server 2000 Enterprise on it. This has the AWE settings for 'max memory setting' to 5120MB. This server has 6GB of memory, or rather about 5.8GB due to PAE. From yesterday morning the server has become almost unresponsive when the SQL service is running, and pretty much all the memory, ie < 1MB on average is listed as being free.
The database has been growing constantly and is now 46GB, with database file size of 67GB.
We moved the database onto a new box which was being prepared for another service, and this has 8GB or ram and no AWE settings. It is running fantastic.
We are going to rebuild the original box and the SAN structure, but I want to do some fiddling before we do. I was going to set awe-enabled to 0 to see if that setting was allowing the OS to have no memory, but from reading http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/failclus.mspx it says If AWE is enabled and is taking too much memory, SQL Server must be shut down to reconfigure it, causing downtime (which makes a high availability option such as failover clustering less available). Because the memory pages used by the instance of SQL Server are taken from the nonpageable pool of Windows memory, none of the memory can be exchanged. This means that if the physical memory is filled up, SQL Server cannot use the page file set up on a physical disk to account for the surplus in memory usage. How do you reconfigure AWE settings if the SQL service is shutdown?
Also, how can I figure out whether the server is deficient in physical RAM, or it is just a 'max memory' setting we need to tweak, or is it just trial and error?
Incase it might help, we have ~3 meaningful DB's on the server apart from 'master'. One is an archive DB ~80GB, one is ~5MB and the live DB which is the size mentioned above. Unfortunately I don't know table sizes.
Good day to all of you I am faced SQL SERVER 2000 Memory usage problem. I am using Windows 2000 Server SP4 and SQL SERVER 2000 SP4. When User running some in-house application software, the memory for sqlservr.exe was increased . But, when user logout from the software. The sqlservr.exe did not decrease the memory. I have around 100 Users in my company. SQL Memory will countinues increase till max memory usage in CPU.
May i know how to order SQL SERVER need to purge memory when USER was log off from the Program? Or my SQL SERVER was corrupted /missing file?
SQL Server 2000 SP3 on a Dell dual 2.4GHz Xeon box 3GB RAM Windows 2KSP4. Two aplication dbs, each less than 2GB in size.Had a problem where we would run Solomon queries and what not againstthe box. It had 2GB RAM, and sqlserv.exe would take up to 1.85GB ofRAM, exhausting the physical RAM on the box. SQL would choke and theSolomon users would have problems, and I would have to restart the SQLservice.I added another GB of RAM, bringing the box to 3GB, and increased thepaging file. The OS sees it, and SQL sees it. I check EnterpriseManager, and tell SQL to dynamically configure memory, and it offers anupper limit of 3071MB, so it "sees" the 3GB.I can stress the box with queries to the point that sqlserv.exe takes1.99GB of memory (as viewed through Task Manager) and then SQL serverchokes. It never goes past 2GB, and the OS and box continue runningfine.Does SQL server 2000 have some upper limit, or do I just need to changesome setting through EM?Thanks.
Hi,I guess SQL server does not release claimed memory even if it is notused. Is there anyway to free the unused memory?Thanks,John Jayaseelan*** Sent via Developersdex http://www.developersdex.com ***Don't just participate in USENET...get rewarded for it!
We use MSDN SQL 2000 , the enterprise edition for our development servers, which have always had 2GB RAM. Now they are bringing in a Win 2003 Enterprise with > 12GB RAM . They want SQL SERVER 2000 to use AWE memory up to 12GB . Is there any limitation on MSDN Ent. Edition using more memory.?
I am running SQL Server 2000 on a desktop PC. Just recently upgraded my PC to 2gig of ram from 1 gig, in part, to try and fix the problem below. Didn't work. Have SP3 installed but not SP4 at this point.
When I open up query analyzer and edit some code, regardless of whether I actually execute the code, SQL server eventually sucks up available and cached memory to the point that my system comes to an effective halt --takes forever to do anything either in SQL server or other applications. In the task manager PF Usage climbs to just over the 2gig memory limit.
I conceptually understand the dynamic memory operation of SQL server ... but why is it sucking up most available memory when nothing is executing?
Is there a way I can release/clear the memory? Ideally, code that coould be run under a stored procedure would best meet my needs. Right now, I am "fixing" by shutting down and then restarting SQL server.
Hi to all, i have a very important problem...pls help me
I have a server with Windows 2003 Server (3GB RAM) and SQL SERVER 2000 running on it, my problem is that sqlserv.exe eat 2GB RAM even if on this server nothing happen....if i restart the service of SQL Server everything is ok eat just 30 MB RAM but after some minutes...after i made a simple select or a simple delete....simple things he arrive to 2GB RAM...this not happen until now(2 days ago)...the problem is that when he arrive to ~2GB RAM the statio run very slow and i receive the error "Time out expire"
this problem happens and on my local station where i have Win XP PRO (1 GB RAM) SQL Server 2000....
I am joining the thread that initially Mike started. We have a x64 bit SQL Server with 32GB RAM. On start up sqlserver.exe starts with 15 to 20MB of RAM. After that the memory gradually increases at a step of 100MB and reaches 31.8 GB at the end. We don't see a out of memory situation so far and the memory remains the same, once the sqlserver.exe reaches that level we are facing application in stability issue. There is no other application running in this server. At present the database size is 28GB and we have employed the following,
There is a database replication running
A weekly maintenance plan to reindex, backup and other maintenance is running.
There is a log back up job which runs once in 2hrs time.
The temdb size grows to 3gb max. We didn't see any temp table created left out orphan in the temdb.
We have the required indexes placed in the tables to reduce the scan time. Also the server is configured to use dynamic memory allocation that is all are factory settings.
The database is encounters on an average 200 to 500 connections at a time. One observation is the memory goes up as soon as the replication starts, this is at one of the 2 servers.
Please advise what is causing this issue and how to go abt it.
We have an SQL 2000 Standard SP4 system with 3gb of RAM running on Windows 2003 Server R2 Standard.
The SQL memory usage of this server flatlines at around 1665mb and will not go any higher.
I understand SQL 2000 Standard on Windows 2003 Server Standard has a 2gb memory limit, however why wont the memory push up to this limit? The OS shows there is around 700mb of the 3076 unused (SQL uses 1660, windows uses around 700 making the maximum used around 2300 of the 3076)
I have set the /3gb switch on windows boot, I have changed the SQL memory configurations many different times. If I try and set 'min server memory' to anything over around 1500mb I get the error on SQL startup;
Warning: unable to allocate 'min server memory' of 1720mb
In the above example surely if the Server has a 2gb limit it should let me set say 1720/2048 ? or 1920/2048 or even 2048/2048, however anything over around 1500 generates the above error.
Our server continues to flatline at 1660mb, any help to squeeze out an extra 200-400mb of RAM would be appreciated or an explination as to why it can not be done.
My server is a dual AMD x64 2.19 GHz with 8 GB RAM running under Windows Server 2003 Enterprise Edition with service pack 1 installed. We have SQL 2000 32-bit Enterprise installed in the default instance. AWE is enabled using Dynamically configured SQL Server memory with 6215 MB minimum memory and 6656 maximum memory settings.
I have now installed, side-by-side, SQL Server 2005 Enterprise Edition in a separate named instance. Everything is running fine but I believe SQL Server2005 could run faster and need to ensure I am giving it plenty of resources. I realize AWE is not needed with SQL Server 2005 and I have seen suggestions to grant the SQL Server account the 'lock pages in memory' rights. This box only runs the SQL 2000 and SQL 2005 server databases and I would like to ensure, if possible, that each is splitting the available memory equally, at least until we can retire SQL Server 2000 next year. Any suggestions?
Could anyone inform me how much the conventional memory SQL7 Enterprise on Advanced Server 2000 can have? The SQL is on an active/active cluster. Currently each runs at 2GB of memory, with available memory for failover. I am planning to add another 2GB to each SQL node. Is this possible? Are there any configurations I need to do? Do I need to set AWE enabled? and How much?
We are a National Level Institutional Stock Broker in India providing trading platform to our Brokers to trade on Exchange nation-wide. We are using Compaq Proliant 8500 Serires computers in clusterd mode having RAM of 1.5 GB on each machine. We are using the Computer-To-Computer-Link (CTCL) solution / application for routing orders of brokers to the Stock Exchange. This application uses the SQL server 7.0 in clustered mode as back-end database on Windows NT Ver 4.0. On daily basis around 20,000 transactions are processed in the database.
Following are the Database Details ---------------------------------- 1. Dat Size : 1890 MB 2. Log Size : 838 MB ------------------ Total Size: 2728 MB
3. File growth options: Automated file growth, By percent : 10 4. Maximum File Size : Unrestricted file growth
On April 25, 2001, we found that application was not getting initialize, we (technical team) checked all the procedures, which are getting triggered at that particular time and found all of them were ok, but application did not started.
We also suspected that one of the procedure might have been corrupted, so we re-compiled all procedures which get triggered before starting the application. After havind done so, the application was still not getting initalized / started.
We also executed following commands:
1. DBCC CHECKDB to check inconsistancy, if any but found none (log is available) 2. DUMP TRAN with no_log (To clear transation logs)
We also executed procedures one after the other sequentially, which were being executed before the application starts after binding once again.
After having done this, we also suspected that the problem might have been with "SQL Server 7.0 database engine" and therefore decided to re-start the computers, after which we found that the applicatio started without any hindrance / errors.
This has raised some issues as follows:
1. Has the database corrupted ? If yes, weather it is possible to run DBCC CHECKDB, SQL queries on a corrupted database ? 2. Was there any systems environment failure ? If so, is it possible to run DBCC CHECKDB, SQL queries on a corrupted database? 3. Is there any possiblity of Database Engine failure? What can be the consequeces on Database Engine failure ? 4. Is it possible that Database Engine Failure is the cause for our case ?
Our some of the engineers are of the opinion that the SQL server need to be shutdown and re-started periodically. 1. Will this in any way avoid such re-currance in the future? 2. If this is true, we would like to have your technical feedback as to why this is necessary?
Should you require any further clarification, I shall be glad to furnish it to you in this regard.
I request you to give your techical feed back on an urgent basis as our applications are CRITICAL and needs UTMOST CARE, hence needs consistancy of database.
I shall be glad to receive your feedback at my e-mail: gchavan@iseindia.com or (+91)(022-781 2389).
what is the difference between those 2 SQL server 2005 SP2 critical update? the description of the two are the same but the builds are different. what should i install? 1. http://www.microsoft.com/downloads/details.aspx?familyid=A7C903FE-35A7-4BB2-8E73-932770099711&displaylang=en
We provide hardware and network support to a medical practice with 5 surgeons and 10 admin staff.
They are implementing a new medical practice software package which will hold all their business critical data including financials, patients, medical records etc. This runs on either SQL 2005 express or full SQL server.
The software vendor is proposing using SQL express only as the database will be << 4Gb
We are not application or database skilled and have concerns that the medical practice may not be getting the best advise from the software vendor.
Is SQL express just as robust and safe for critical data as the full SQL server database ? Technical €śgut feel€? is that it can€™t be or MS would not sell many licenses.
Comments would be appreciated. It is hard for us to suggest using a full SQL database unless there is a substantiated reason.
I have a DTS program in sql-server 2000 which worked to week 27 but not from week 28. During that time I was on vacation och no one else was working with the server.
The part which is the problem looks like this.
if exists (select * from dbo.sysobjects where id = object_id(N'[lenko7].[aviskydd]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [lenko7].[aviskydd] GO
CREATE TABLE [lenko7].[aviskydd] ( [Col002] [varchar] (255) NOT NULL, [linecount] [int] NOT NULL ) ON [PRIMARY] GO
I have not changed owner.
I don't understand why this DTS package suddenly cant work because it has been working for a several years with no problems. The only thing a know is that we have updated windows 2000 cause of a critical updates Juli 13.
I did a load testing and found the following observations:
1. The Memory:Pages/sec was crossing the limit beyond 20.
2. The Target Server Memory was always greater than Total Server Memory
Seeing the above data it seems to be memory pressure. But I found that AvailableMemory was always above 200 MB. Also Buffer Cache HitRatio was close to 99.99. What could be the reason for the above behavior?
Does anyone know how or where to adjust Ram Memory usage for SQL 2000. I've just added Changed the 512 MB Ram that came with the Server and Exchanged it with 4 GIG Ram . Is it a good Idea to allow only 2GiG for SQL . I 've heard that SQL will take/use all Ram that you install if you let. If this is true Can anyone advise on how/where to make adjustments. Thank You...
I am looking for recommandations regarding the memory distribution for SQL 2000 server. In the memory tab of the server properties you can define use a fixed memory size or dynamically configure SQL server or even reserve physical memory for SQL server. Are there any hints available or must it be handled according trial and error?
Running sqlserver 2000 on a w2k server with 1gb of memory. After a reboot the memory usage is around 500m but quickly climbs. At 1 point it was up to 1.5gb so it must have been swapping. Are there any good docs about this or any recommendations on how to limit sqlserver from using all the memory. It is the only application on the server so it isn't affecting anything else so maybe it isn't a problem. I just wanted to get people's inpit on this.
I would like to ask regarding the memory allocation fo SQL Server 2000. For example if my Data Server have 8GB physical memory installed how much memory can SQL Server 2000 utilize? Based on my research and understing SQL 2000 Server can only utilize 3GB memory? But using the AWE you can set the memory to a maximum server memory?
I recently changed the max. memory option in SQL from 24 GB to 30GB but the perfmon counters still only show 24 GB. Any ideas on why it is not recognizing the change? The server has Win 2003 EE and 32 GB of RAM.
On one of our intranet SQL servers running under Windows 2000 SP 3, MSsql 2000 SP4 seems to gradually "eat" away all available memory (with no obvious reason for it) until a certain limit is reached, forcing the server to slow down substantially since the OS has to SWAP continuously.
I would appreciate any suggestions at this point on how to tackle this problem :)
Hi, I have one application in two different companies with MSSQL2000 running on Windows2000 Server and Windows2003 Server. It seems that memory needed for MSSQL2000 as displayed in task manager is increased every day. Does anybody knows anything regarding memory leaks in MSSQL2000?
How can I find what version of service pack have I installed in a MSSQL2000 server machine?