하드 드라이브 설정에 대해 잘 모릅니다.
http://blog.sqlauthority.com/2009/05/31/sql-server-create-multiple-filegroup-for-single-database/
http://msdn.microsoft.com/en-us/library/bb522469.aspx
첫 번째 링크는 개념을 설명합니다.
두 번째 링크는 구문을 보여줍니다. 당신이보고 싶을
3 개 항목은 다음과 같습니다
[ , SIZE = size [ KB | MB | GB | TB ] ]
[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[ , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % ] ]
이유는 무엇입니까?
첫 번째 크기가 초기 크기입니다. 두 번째는 최대 크기입니다. 그리고 이것이 설정된 경우 하드 드라이브에 공간이있을 수 있지만 데이터베이스는 더 이상 사용하지 않게됩니다. 세 번째 것은 "maxsize 규칙을 위반하지 않은 경우 얼마나 커야합니까?"입니다.
지금. MAXSIZE를 UNLIMITED로 설정할 수 있습니다.
. 하드 드라이브가 가득 차면 오류가 발생하기 시작합니다.
따라서 dba를 재생하고 어떤 옵션이 가장 적합한 지 선택하십시오.
개인적으로 MAXSIZE를 드라이브의 여유 공간보다 작게 설정 했으므로 에지 지점에 도달하지 않습니다.
대상 : 다른 파일 그룹을 만들고 다른 파일 그룹에 다른 테이블을 넣을 수 있습니다. 하나의 테이블이 거대하지만 다른 테이블은 작을 것이라는 것을 알면 편리합니다.
그래서 ... 이미 MAXSIZE 설정이되어 있는지 확인하십시오.
그럼 테이블과 하드 드라이브, 파일 그룹 및 테이블로 룰렛을해야합니다.
공간 문제에 대한 다른 옵션으로 로그 파일을 다른 하드 드라이브에 저장할 수도 있습니다.
다음은 파일 그룹을 만든 다음 테이블을 새 파일 그룹으로 옮기는 좋은 샘플입니다. 다음은
http://www.daveturpin.com/2010/09/move-tables-to-new-filegroup/
내가 SQLCMD 모드를 사용하여 데이터베이스를 생성해야하는 스크립트입니다. 디렉토리가 "미리 존재"해야합니다 (실제로 SQL 서버에 있지 않은 경우 로컬 시스템이 아닌 서버에 있음).
:Setvar DBName MyFirstDatabase01
:Setvar DataFilesBaseDirectory "C:\WUTemp\Some Folder\"
:Setvar LogFilesBaseDirectory "C:\WUTemp\Some Folder\"
:Setvar DatabasePrimaryDataFileStartSizeMB 9
:Setvar DatabasePrimaryDataFileGrowthMB 8
:Setvar DatabasePrimaryLogFileStartSizeMB 7
:Setvar DatabasePrimaryLogFileGrowthMB 6
Use [master];
GO
if exists (select * from sysdatabases where name='$(DBName)')
BEGIN
DROP DATABASE [$(DBName)];
END
GO
--Create Database $(DBName)
--G--O
DECLARE @device_directory_data NVARCHAR(520)
DECLARE @device_directory_log NVARCHAR(520)
--SELECT @device_directory_data = SUBSTRING(filename, 1, CHARINDEX(N'master.mdf', LOWER(filename)) - 1) FROM master.dbo.sysaltfiles WHERE dbid = 1 AND fileid = 1
--SELECT @device_directory_log = SUBSTRING(filename, 1, CHARINDEX(N'master.mdf', LOWER(filename)) - 1) FROM master.dbo.sysaltfiles WHERE dbid = 1 AND fileid = 1
select @device_directory_data = '$(DataFilesBaseDirectory)'
select @device_directory_log = '$(LogFilesBaseDirectory)'
print @device_directory_data
print @device_directory_log
EXECUTE (N'CREATE DATABASE $(DBName)
ON PRIMARY (NAME = N''$(DBName)'', FILENAME = N''' + @device_directory_data + N'$(DBName).mdf'', SIZE = $(DatabasePrimaryDataFileStartSizeMB) MB, FILEGROWTH = $(DatabasePrimaryDataFileGrowthMB)MB)
LOG ON (NAME = N''$(DBName)_log'', FILENAME = N''' + @device_directory_log + N'$(DBName).ldf'', SIZE = $(DatabasePrimaryLogFileStartSizeMB) MB, FILEGROWTH = $(DatabasePrimaryLogFileGrowthMB)MB)')
DECLARE @logsize char(1)
SELECT @logsize = CASE WHEN convert(varchar, Serverproperty('ProductVersion')) LIKE '9%'
--THEN '10'
--ELSE '5'
THEN '13'
ELSE '14'
END
EXECUTE(N'ALTER DATABASE $(DBName)
ADD LOG FILE (NAME = N''$(DBName)_log2'',
FILENAME = N''' + @device_directory_log + N'$(DBName)log2.ldf'', SIZE = ' + @logsize + ' MB)')
-- Make the database case sensitive to clean up the development effort
-- EXECUTE(N'ALTER DATABASE $(DBName) COLLATE SQL_Latin1_General_CP1_CS_AS')
exec sp_dboption '$(DBName)','trunc. log on chkpt.','true'
exec sp_dboption '$(DBName)','select into/bulkcopy','true'
GO
GO
당신이 MongoDB를 또는 DynamoDB의 같은 NoSQL의 솔루션을 사용하여 생각 해 봤나 이러한 기사를 확인? –
15000x2는 한 달에 "많은 양의 데이터"처럼 들리지 않습니다. 공간이 왜 그렇게 제한되어 있습니까? 새로운 하드 드라이브를 구입하는 것이 경제적 인 해결책을 찾기 위해 지불하는 것보다 훨씬 저렴할 것입니까? – spender
한 달에 30000 개의 행이 "많은 양의 데이터"처럼 들리지 않습니다. 스토리지 공간이 왜 문제가됩니까? – Kai