SQL Server Indonesia User Groups Community January 2010 - Posts - suherman
Welcome to SQL Server User Group Indonesia
Sign in JoinHelp | Sign In Live ID

suherman

Share ur Knowledge

January 2010 - Posts

FILESTREAM limitations

Mengaktifkan fitur FILESTREAM di SQL Server 2008 memang sangat bermanfaat pada saat anda sedang mengerjakan project yang banyak melakukan pekerjaan menyimpan file-file dokumen berukuran besar. Namun ada beberapa hal yang harus disadari saat menggunakan fitur ini :

  1. FILESTREAM data tidak dapat di enkripsi walaupun transparant data encryption diaktifkan
  2. Database Mirroring tidak dapat diterapkan pada database yang mengaktifkan FILESTREAM
  3. Database Snapshots tidak dapat diterapkan pada database yang mengaktifkan FILESTREAM

 

logo-header-sql08-dg

Posted: Jan 20 2010, 08:43 AM by Suherman | with no comments
Filed under:
Avoid Update Commands of All Record

Kadang bila kita sering bekerja dengan perintah-perintah DML, ya namanya manusia kadang ada khilafnya. bagaimana apabila Khilaf anda adalah melakukan perintah Update pada sebuah tabel tanpa menggunakan klausa ‘Where’ ? tentunya menjadi sebuah kecelakaan yang ‘menggetarkan’ hati bukan ?

sebenarnya hal ini bisa dicegah sejak dini, yaitu dengan memproteksi salah satu tabel atau semua tabel yang dianggap sangat penting. Pasang trigger pada tabel yang kita inginkan. berikut ini adalah contohnya :

   1: USE AdventureWorks
   2: GO
   3: CREATE TRIGGER production.CegahUpdate 
   4: ON production.product 
   5: FOR UPDATE AS 
   6: BEGIN
   7:      DECLARE @JmlTerupdate int
   8:      SET @JmlTerupdate = @@ROWCOUNT;
   9:      IF @JmlTerupdate >= (SELECT SUM(row_count)jml FROM sys.dm_db_partition_stats 
  10:          WHERE index_id = 1 and OBJECT_ID = OBJECT_ID('production.product'))
  11:      BEGIN
  12:          RAISERROR('Update Semua Data Tidak Diizinkan',16,1) 
  13:          ROLLBACK TRANSACTION
  14:          RETURN;
  15:      END
  16: END
  17: GO

Saya akan coba jelaskan bagaimana trigger production.CegahUpdate ini bekerja. 

Pada line 7 dan 8, kita coba tangkap jumlah baris yang terupdate pada statement terakhir, yaitu pada DML update yang terjadi. Bila record yang terjadi mencapai angka 2 milyar record atau lebih, jangan gunakan @@Rowcount tapi gunakan ROWCOUNT_BIG. dan rubah type data variable @JmlTerupdate dengan BigInt.

Setelah itu pada line 9 dan 10 mencoba untuk membandingkan jumlah baris yang terupdate dan jumlah baris record yang ada pada tabel production.product. Jika ternyata jumlah yang terupdate itu lebih atau sama dengan record yang ada, maka proses update yang terjadi akan di rollback (line 13) dan dipasang Raiserror dengan nilai severity 16 (line 12). Severity 16 melambangkan bahwa error yang terjadi dapat diatasi oleh user.

Mari kita coba trigger tersebut. saya coba untuk update tabel production.product pada field ListPrice. saya akan ubah semua listprice menjadi 100 dan berikut hasilnya

updateall

terlihat proses update telah di aborted. data tetap pada kondisi sebelum terjadi update.

Demikian semoga bermanfaat.

Posted: Jan 13 2010, 02:10 PM by Suherman | with no comments
Filed under:
Creating a FileStream Database in SQL Server 2008

Setelah di blog yang lalu membahas mengenai Enable FILESTREAM on the instance of the SQL Server Database Engine, selanjutnya adalah membuat FileStream database nya.

Berbeda dengan cara membuat database biasanya. dalam membuat FileStream database memerlukan adanya penambahan File database yang memiliki file type FileStream Data yang berfungsi sebagai FileStream Data Countainer. Juga ada proses penambahan FileGroups sebagai Countains FileStream.

berikut ini adalah langkah-langkah pembuatan FileStream Database.

  1. Pertama kita siapkan sebuah FileStream Data Countainer didalam Hardrive kita. dalam contoh ini akan saya buat di drive E:\  yang nantinya apabila databasenya telah terbentuk akan muncul folder berikut E:\FileStreamSampleCountainer. Sedangkan File .MDF dan .LDF saya letakkan di  E:\FileStreamSampleDB
  2. selanjutnya kita coba membuat databasenya
    Use Master
    GO
    -- Membuat Database FileStreamSampleDB
    CREATE DATABASE FileStreamSampleDB ON PRIMARY
    ( NAME = N'FileStreamSampleDB', FILENAME = N'E:\FileStreamSampleDB\FileStreamSampleDB.mdf' ,
    SIZE = 10MB , MAXSIZE = UNLIMITED, FILEGROWTH = 10% )
    LOG ON
    ( NAME = N'FileStreamSampleDB_log', FILENAME = N'E:\FileStreamSampleDB\FileStreamSampleDB_log.ldf' ,
    SIZE = 10MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10%)
    GO
    -- Membuat FileGroup
    ALTER DATABASE FileStreamSampleDB
    ADD FILEGROUP [FileStreamSampleDBGroup] CONTAINS FILESTREAM
    GO
    -- Membuat FileStream Data Countainer
    ALTER DATABASE FileStreamSampleDB
    ADD FILE (NAME = N'FileStreamSampleDB_FSData', FILENAME = N'E:\FileStreamSampleCountainer')
    TO FILEGROUP FileStreamSampleDBGroup
    GO

  3. setelah di Execute dapat kita lihat object- object apa saja yang timbul di Instances yang kita miliki

    filestream3 

    filestream4

Sampai disini kita sudah berhasil membuat sebuat FileStream Database. perhatikan pada folder E:\FileStreamSampleCountainer, terbentuk 2 buah objek yang salah satunya bernama filestream.hdr ,

filestream5

 

 

 

file filestream.hdr merupakan file yang menampung informasi header dari FileStream, sehingga kerusakan pada file ini akan berakibat fatal pada FileStream Database.

Posted: Jan 06 2010, 12:41 PM by Suherman | with no comments
Filed under:
Enable FILESTREAM on the instance of the SQL Server Database Engine

Bila anda sedang mengerjakan sebuah project aplikasi yang menggunakan database serta dalam routinenya sering menggunakan file-file gambar, video, document, audio dan lain-lain atau anggaplah anda sedang mengerjakan project Document Management dengan menggunakan database SQL Server 2008, ada baiknya anda memanfaatkan fitur Filestream yang ada di SQL Server 2008.

Dengan menggunakan fitur FILESTREAM, file sebenarnya tidak tersimpan dalam database file, melainkan berada pada NT File System (akan saya jelaskan pada blog berikutnya).

untuk menggunakan fitur Filestream, ini bisa dilakukan pada saat instalasi pertama SQL Server 2008 atau apabila sudah terinstall namun belum mengaktifkan fitur Filestreamnya, dapat melakukan langkah-langkah sebagai berikut, namun sebelumnya anda harus memiliki akses sebagai SYSADMIN :

  1. Klik Start –> All Programs –> Microsoft SQL Server 2008 –> Configuration tools –> SQL Server Configuration Manager
  2. Klik SQL Server Services
  3. Pilih Instance yang mana yang akan di Enabled kan fitur Filestream nya (pada sample, saya memilih instance SQLSRV2008),   lalu klik kanan, pilih Properties

    filestream1

  4. Maka akan muncul dialog box, pilih tab FILESTREAM seperti berikut :

    filestream2

  5. Check option ‘Enable FILESTREAM for Transact-SQL access’ kemudian klik OK.
  6. setelah itu jalankan T-SQL berikut :
EXEC sp_configure filestream_access_level, 2
RECONFIGURE

Posted: Jan 06 2010, 12:37 PM by Suherman | with 1 comment(s)
Filed under:
More Posts