November 24, 2021 at 4:47 am
Hi,
I'm trying to run SQL Tuning Advisor on SQL 2014 and I get the following error.
XML document could not be created because server memory is low. Use sp_xml_removedocument to release XML documents. (Microsoft SQL Server, Error: 6624)
I've read a bunch of articles and they have things like
DECLARE @hdoc INT = 1
EXEC sp_xml_removedocument @hdoc
Which gives back the error "Could not find prepared statement with handle 1."
I have no idea what stored proc has caused this. I have also run
SELECT *
FROM sys.dm_os_memory_objects
WHERE type LIKE '%XML'; as suggested
I get two results one type is MEMOBJ_MSXML and the other is MEMOBJ_DEADLOCKXML
The server has 700Gb memory 12 CPU.
Kris
November 24, 2021 at 1:42 pm
First, don't use the tuning advisor. It's actually more than a little bit dangerous in its recommendations.
Second, are you providing an XML input document? Is it that it's too large for the machine you're running it on? Don't run the tuning advisor directly on your production server. Run it on another machine.
The XML documents you're showing are system things, so I don't think you need to be pulling them.
How are you running the DTA?
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
November 24, 2021 at 7:17 pm
I agree with Grant...I wouldn't bother with DTA at all. It is actually possible to get such an error simply because of an overly complex query or a simple looking query that would actually have an overly complex execution plan.
My suggestion would be to first look at an actual execution plan rather than DTA.
If that comes back with a similar error, then you're going to need to do some Divide'n'Conquer stuff. For example, I once wrote a bit of dynamic SQL to generate a whole bunch of rather simple but cascading CTEs (not to be confused with Recursive CTEs). I went over some limit and it gave me an error about SQL Server not being able to even resolve the query. It's not exactly the same as your error because it never even got to trying to create an execution plan (in XML) but I'm thinking something similar is your problem.
--Jeff Moden
Change is inevitable... Change for the better is not.
November 25, 2021 at 3:48 am
I'm running it from my local machine. While I imagine it is a poorly written SP I don't know what it is. Is there a way to find out? I have watched the series on execution plans you did and would like to try and use what ever this is as an example. Sorry for my ignorance.
Kris
November 25, 2021 at 1:34 pm
Nah, don't apologize. This forum is here to expand knowledge, so please, use it.
I haven't tried troubleshooting the DTA too much, so I'm not sure what you can do there. Generally, I fall back on Extended Events as my mechanism for understanding behaviors within SQL Server in general. There's probably something that can help there with the DTA. Or, you could just look at the query behaviors using a session on rpc_completed and sql_batch_completed.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning
Viewing 5 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic. Login to reply