mastergoIF
DB_ID
(N'NCDB')
IS
NOT
NULLDROP
DATABASE
[NCDB]goCREATE
DATABASE
[NCDB]goALTER
DATABASE
[NCDB]
ADD
FILEGROUP
[NNC_DATA01]goALTER
DATABASE
[NCDB]
ADD
FILEGROUP
[NNC_INDEX01]goALTER
DATABASE
[NCDB]
ADD
FILE(NAME
=
N'nnc_data01',
FILENAME
=
N'D:\Microsoft
SQL
Server\MSSQL$SQL1\data\nnc_data01_Data.NDF'
,
SIZE
=
800,
FILEGROWTH
=
200)
TO
FILEGROUP
[NNC_DATA01]goALTER
DATABASE
[NCDB]
ADD
FILE(NAME
=
N'nnc_index01',
FILENAME
=
N'D:\Microsoft
SQL
Server\MSSQL$SQL1\data\nnc_index01_Data.NDF'
,
SIZE
=
300,
FILEGROWTH
=
100)
TO
FILEGROUP
[NNC_INDEX01]go--
调整临时表空间declare
@name
char(50)declare
@sql
nvarchar(500)select
@name=rtrim(name)
from
tempdb.dbo.sysfiles
where
status
&
0x40
!=
0x40set
@sql='alter
database
tempdb
modify
file
(
name='+@name+',size=300mb,filegrowth=10mb)'exec
master.dbo.sp_executesql
@sql
首先,你要找到sysconfig.bat文件,打开之后看看连接数据库测试,是否正常。不然就是表空间建立时没有建好临时表空间。如果是表空间的问题,按以下方法 *** 作:1、删除之前建的数据表空间(3个data,3个index);
2、删除之前的用户;
3、重新按照用友《NC6.1 数据库参考脚本及临时表要求》的说法,只建一个data和一个索引。(之前我是按照5X的习惯建了3个data,3个index)
4、重建用户,并且只GRANT connect,dba到这个新建的用户(之前我还grant了create any table)。
done。
MySQL 需要创建隐式临时表来解决某些类型的查询。往往查询的排序阶段需要依赖临时表。例如,当您使用 GROUP BY,ORDER BY 或DISTINCT 时。这样的查询分两个阶段执行:首先是收集数据并将它们放入临时表中,然后是在临时表上执行排序。对于某些 UNION 语句,不能合并的 VIEW,子查询时用到派生表,多表 UPDATE 以及其他一些情况,还需要使用临时表。如果临时表很小,可以到内存中创建,否则它将在磁盘上创建。MySQL 在内存中创建了一个表,如果它变得太大,就会被转换为磁盘上存储。内存临时表的最大值由 tmp_table_size 或 max_heap_table_size 值定义,以较小者为准。MySQL 5.7 中的默认大小为 16MB。如果运行查询的数据量较大,或者尚未查询优化,则可以增加该值。设置阈值时,请考虑可用的 RAM 大小以及峰值期间的并发连接数。你无法无限期地增加变量,因为在某些时候你需要让 MySQL 使用磁盘上的临时表。
注意:如果涉及的表具有 TEXT 或 BLOB 列,则即使大小小于配置的阈值,也会在磁盘上创建临时表。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)