Доступно с лицензией Production Mapping.
В соответствии со стандартными рекомендациями ГИС по хранению файлы журналов и индексов предпочтительно хранить отдельно от векторных и табличных бизнес-таблиц. В целях повышения производительности лучше располагать бизнес-таблицы, таблицы объектов и таблицы пространственного индекса отдельно, а файлы данных FileGroup – на основе шаблонов их применения. В мультиверсионных базах геоданных с высокой активностью работы по редактированию VERSIONS FileGroup файлы баз данных могут быть разделены и рассредоточены по доступным дискам, что позволяет уменьшить риски возникновения конфликтов на входе/выходе.
В следующей таблице указаны рекомендуемые для создания FileGroups для хранения пространственных объектов и таблиц.
FILEGROUP | CONFIGURATION KEYWORD_PARAMETER |
---|---|
PRODLIB_BDATA | Business table |
PRODLIB_BINDEX | Business table index |
PRODLIB_SDATA | Spatial Index table |
PRODLIB_SINDEX | Spatial Index table index |
PRODLIB_ADATA | Adds table (versioned) |
PRODLIB_AINDEX | Adds table index |
PRODLIB_DDATA | Deletes table (versioned) |
PRODLIB_DINDEX | Deletes table index |
PRODLIB_XMLDOC | XML documents |
PRODLIB_XMLIDX | XML documents indexes |
PRODLIB_SDEDICT | Data dictionary |
PRODLIB_SDEDICTINDEX | Data dictionary index |
The following script can be run in SQL Management Studio to add FileGroups.
USE MASTER
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_BDATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Bdata01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Bdata01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_BDATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_BINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Bindex01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Bindex01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_BINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_SDATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Sdata01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Sdata01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_SDATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_SINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Sindex01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Sindex01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_SINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_ADATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Adata01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Adata01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_ADATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_AINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Aindex01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Aindex01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_AINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_DDATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Ddata01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Ddata01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_DDATA]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_DINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE (NAME = N'prodlib_Dindex01', FILENAME = N'C:\mssql\data\prodlibdb\prodlib_Dindex01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_DINDEX]
GO
ALTER DATABASE [PRODLIBDB] ADD FILEGROUP [PRODLIB_XMLDOC]
GO
ALTER DATABASE [PRODLIBDB] ADD FILE(NAME = N'prodlib_Xmldoc_01', FILENAME = N'D:\mssqldata\prodlibdb\prodlib_Xmldoc_01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_XMLDOC]
GO
ALTER DATABASE [prodlibdb] ADD FILEGROUP [PRODLIB_XMLINDEX]
GO
ALTER DATABASE [prodlibdb] ADD FILE(NAME = N'prodlib_Xmlindex_01', FILENAME = N'D:\mssqldata\prodlibdb\prodlib_Xmlindex_01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_XMLINDEX]
GO
ALTER DATABASE [prodlibdb] ADD FILEGROUP [PRODLIB_SDEDICT]
GO
ALTER DATABASE [prodlibdb] ADD FILE(NAME = N'prodlib_Sdedict_01', FILENAME = N'D:\mssqldata\prodlibdb\prodlib_Sdedict_01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_SDEDICT]
GO
ALTER DATABASE [prodlibdb] ADD FILEGROUP [PRODLIB_SDEDICTINDEX]
GO
ALTER DATABASE [prodlibdb] ADD FILE(NAME = N'prodlib_Sdedictindex_01', FILENAME = N'D:\mssqldata\prodlibdb\prodlib_Sdedictindex_01.NDF' , SIZE = 1, MAXSIZE = 800, FILEGROWTH = 1) TO FILEGROUP [PRODLIB_SDEDICTINDEX]
GO
Если установить начальный размер файлов данных в 1 МБ, FileGroups будут создаваться без задержек. Затем можно изменить размер файлов данных во избежание фрагментации.
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Bdata01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Bindex01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Sdata01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Sindex01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Adata01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Aindex01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Ddata01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Dindex01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Xmldoc_01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Xmlindex_01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Sdedict_01', SIZE = 400MB )
ALTER DATABASE [PRODLIBDB] MODIFY FILE ( NAME = N'prodlib_Sdedictindex_01', SIZE = 400MB )
Use the following to verify FileGroups and data files:
EXEC sp_helpdb prodlibdb
GO