×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

Here is the MSDN explanation,but I don't think it applies to my situation.

Error 8621
Severity Level 16
Message Text
Internal Query Processor Error: The query processor ran out of stack space during query optimization.

Explanation
The Query Processor is using a large but limited memory stack when optimizing queries. In some extreme situations the stack size may become a limit for a given very large query--for example, a query containing an inlist with 100,000 constants.

Action
Simplify the query to avoid this problem. For example, in the case of an extremely large inlist use temporary table or table variable to store the constants, and rewrite the query to use this variable or temporary table instead.
Report

Replies, comments and Discussions:

  • 工作学习 / IT技术讨论 / 请问这个ADO Error Message 如何解决?
    在ASP中我用了如下:
    sqlFolder="INSERT INTO Folders (...) VALUE (...) "
    Conn.execute(sqlFolder)
    在大部分时候,可以正确执行,但有些时候(未知)会返回以下Error Message:
    Internal Query Processor Error: The query processor ran out of stack space during query optimization.
    数据库是:SQLServer2000
    • don't know. did you try to search on google by this error message? sounds like you SQL server has some configuaration problem.
      • Here is the MSDN explanation,but I don't think it applies to my situation.
        Error 8621
        Severity Level 16
        Message Text
        Internal Query Processor Error: The query processor ran out of stack space during query optimization.

        Explanation
        The Query Processor is using a large but limited memory stack when optimizing queries. In some extreme situations the stack size may become a limit for a given very large query--for example, a query containing an inlist with 100,000 constants.

        Action
        Simplify the query to avoid this problem. For example, in the case of an extremely large inlist use temporary table or table variable to store the constants, and rewrite the query to use this variable or temporary table instead.
        • as I understood it is. I didn't know much about stack. but a DBA will.
    • maybe something wrong in your SQL server configuration?
      • think so
      • is there anybody know how to config the database to avoid this problem?
        it really bothers me, because in most time it won't happen, but sometime it jumps out. I don't know how to handle it since I am just a programmer and we don't have a DBA here. and as my opion, sqlserver is like a silly DB don't need administration at all if not caring about the efficiency and performence.
        • 1. Apply the latest service pack (sp2) to your database server. 2. Check your memory setting and allocate more memory to your sql service. 3. Check the size of your tempdb partition.
          • Thank you very much, I will try it.
          • the tempdb filesize is set to automatic grow. and unrestricted file size,is that ok?
            • 有时查询过大的话TEMP空间也会满的,最好的做法是估计可能需要的空间,然后设置成自动的就可以了
            • tempdb只有在一种情况下才会满,就是其所在的partition或logical drive再没有可分配的自由空间。很多公司在dba缺乏的情况下常把tempdb放在default location (master data 所在的location),这是很要不得的。
              tempdb should be on the dedicated partition with RAID 1 configuration. and the size should be set up as "automatically grow".
    • 不知道2000的结构如何,如果是7.0的话,可能是日志满了,或者是TEMP空间满了
    • You could be running a huge query, trying to do a huge aggregation function, or sorting a huge set of data