Membuat Database Melalui Script
Selain menggunakan SSMS, database juga bisa dibuat menggunakan script. Di bawah adalah cara untuk membuat database menggunakan script :
CREATE DATABASE akademik
akademik merupakan nama database yang kita definisikan. Script di atas adalah cara untuk membuat default database pada SQL Server. Hasilnya akan sama dengan database yang sudah kita buat sebelumnya dengan menggunakan SSMS. Hasil data file yang terbentuk akan tersimpan secara default, yaitu di C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data.
Untuk membuat database secara advance (kita mendefinisikan sendiri kebutuhan kita), maka script yang kita gunakan adalah sebagai berikut :
CREATE DATABASE akademik
ON PRIMARY
(
NAME = N'FG_Primary',
FILENAME = 'c:\Files\FG_Primary.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
LOG ON
(
NAME = N'FG_Log',
FILENAME = 'c:\Files\ akademik _Log.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
Pada script di atas, kita mendefinisikan beberapa property sesuai dengan kebutuhan kita sendiri. Jika sebelumnya propertyproperty tersebut diisi secara default oleh SQL Server, maka melalui script kita bisa mendefinisikannya sesuai kebutuhan. Hal ini sama jika kita mengubah data secara default saat membuat database menggunakan SSMS, namun terasa lebih mudah.
Property tersebut adalah :
• NAME
Nama logikal dari data file tersebut.
• FILENAME
Nama fisik yang tersimpan di dalam disk pada server.
• SIZE
Nilai besarnya data file pada saat database dibuat.
• MAXSIZE
Nilai maximum dari data file yang didefinisikan tersebut.
• FILEGROWTH
Nilai dari data file tersebut yang akan ditambahkan saat data file yang
didefinisikan tersebut telah terisi penuh.
Membuat Secondary File dan Data File Secondary file bisa dibuat untuk menampung data-data transaksional lainnya. Filegroup primary biasanya tidak menampung data-data transaksi dari database tersebut, melainkan akan menjadi starting point dari suatu database. Filegroup secondary bisa dibuat
lebih dari satu, hal ini berbeda dengan Filegroup primary dan Filegroup log. Berikut ini adalah script untuk membuat secondary file :
CREATE DATABASE akademik
ON PRIMARY
(
NAME = N'FG_Primary',
FILENAME = 'c:\Files\FG_Primary.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary1
(
NAME = N'FG_Secondary1',
FILENAME = 'c:\Files\FG_Secondary1.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary2
(
NAME = N'FG_Secondary2',
FILENAME = 'c:\Files\FG_Secondary2.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
LOG ON
(
NAME = N'FG_Log',
FILENAME = 'c:\Files\ akademik _Log.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
Filegroup FG_Secondary1 dan FG_Secondary2 merupakan filegroup secondary, dimana datanya berupa ndf. Filegroup tersebut didefinisikan dengan property yang sama seperti filegroup primary dan log. Kita juga bisa mendefinisikan nilai dari property tersebut berbeda dengan filegroup primary dan log, tidak harus sama. Setiap filegroup (mdf, ldf, dan ndf) bisa memiliki lebih dari satu data file. Secara fisik, data file dengan extension mdf dan ldf hanya satu. Jika kita menambahkan data file pada filegroup primary, maka yang lainnya berupa ndf (secondary data file). Di bawah ini adalah script untuk membuat database dengan lebih dari satu data file:
CREATE DATABASE akademik
ON PRIMARY
(
NAME = N'FG_Primary',
FILENAME = 'c:\Files\FG_Primary.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary1
(
NAME = N'FG_Secondary11',
FILENAME = 'c:\Files\FG_Secondary11.ndf'
,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
(
NAME = N'FG_Secondary12',
FILENAME = 'c:\Files\FG_Secondary12.ndf'
,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary2
(
NAME = N'FG_Secondary21',
FILENAME = 'c:\Files\FG_Secondary21.ndf'
,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
(
NAME = N'FG_Secondary22',
FILENAME = 'c:\Files\FG_Secondary22.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
LOG ON
(
NAME = N'FG_Log',
FILENAME = 'c:\Files\ akademik _Log.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
Dengan memiliki lebih dari satu data file, maka kita bisa menempatkan data file tersebut pada disk yang berbeda. Hal ini bisa meningkatkan performa disk I/O pada server tersebut karena bisa ditempatkan di beberapa disk yang berbeda, sehingga bottleneck pada I/O server tidak terjadi. Dengan dibuatnya database pada SQL Server dengan terstruktur dan arsitektur yang tepat, maka performa bisa kita tingkatkan. Selain me-reduce bottleneck pada I/O dengan menempatkan pada beberapa disk berbeda, arsitektur ini juga bisa me-reduce loading data yang akan diambil karena data yang di-load hanya satu bagian kecil (satu data file), bukan satu file mdf yang memiliki semua data pada database tersebut.
Catatan :
Saat mendefinisikan filegroup, sebaiknya tempatkan
filegroup primary dan filegroup log secara terpisah agar
lebih optimal dalam I/O dan bisa menjalankan proses secara
paralel.
Sebaiknya Filegrowth didefinisikan dengan menggunakan MB
(Megabyte) dan bukan percentage. Karena jika kita
menggunakan percentage, semakin besar ukuran database
semakin besar pula growth pada filegroup tersebut.