与 MySQL 相比,Oracle 和 MSSQL 中的 thread_stack 是什么

与 MySQL 相比,Oracle 和 MSSQL 中的 thread_stack 是什么

我在 MySQL 中使用递归存储过程,必须将thread_stackmy.ini 中的值从 128K 更改为 512K。

我现在需要将相同的过程部署到 Oracle 和 Microsoft SQL Server。

MySQL 在 Oracle、SQLServer 中的等效配置值是什么thread_stack

答案1

这是我在 SQL Server 中发现的:

http://blogs.msdn.com/b/arvindsh/archive/2008/08/24/sql-worker-thread-stack-sizes.aspx

http://www.sqlskills.com/blogs/jonathan/how-much-memory-does-my-sql-server-actually-need/

综上所述,32位Windows上为512K,64位Windows上为2M。

对于 Oracle,公共文档中没有提供,但支持站点的此说明中对此进行了解释:Oracle 数据库和 Windows NT 内存体系结构,技术公告(文档 ID 46001.1)。您可以使用 ORASTACK 实用程序列出(或更改)线程堆栈大小(称为每个线程的保留内存)。堆栈的默认大小取决于版本和平台。

例如,在 64 位 Windows 上,64 位 11.2 和 12.1 版本的默认堆栈大小分别为 3.1M 和 3.5M:

11.2:

orastack X:\oracle\base\product\db11203ee\BIN\oracle.exe

Dump of file X:\oracle\base\product\db11203ee\BIN\oracle.exe

Current Reserved Memory per Thread  = 3100000
Current Committed Memory per Thread = 12160

12.1:

orastack C:\oracle\base\product\db12101ee\BIN\oracle.exe

Dump of file C:\oracle\base\product\db12101ee\BIN\oracle.exe

Current Reserved Memory per Thread  = 3500000
Current Committed Memory per Thread = 12160

11.2 在 32 位 Windows 上,1M:

orastack C:\oracle\product\11.2.0\dbhome_1\BIN\oracle.exe

Dump of file C:\oracle\product\11.2.0\dbhome_1\BIN\oracle.exe

Current Reserved Memory per Thread  = 1048576
Current Committed Memory per Thread = 4096

相关内容