Script penambahan tanggal di nama file

Ide ini mulai muncul ketika saya mulai banyak menemukan tabel2 yang menyimpan data hingga 8 juta baris lebih. Untuk beberapa server kelas kecil, tentu hal ini sangat mengurangi performa database. User harus menunggu cukup lama untuk mengquery table. Salah satu cara yang umum dilakukan adalah dengan indexing. Tapi cara ini tentu membutuhkan resource memory yang cukup tinggi.

Ada cara lain yang bisa dilakukan bila resource server sangat terbatas, yakni dengan menurunkan data yang sudah tidak digunakan oleh user. Namun tentu bukan untuk dibuang, hanya diturunkan dari SQL, disimpan dalam bentuk lain di tempat yang terpisah.

Caranya mudah hanya degan 3 langkah :
1. mengeksport data dalam bentuk .tsv –> saya pilih bentuk text file karena lebih mudah menyimpannya, dan filenya ringan
Alternatif lainnya bisa juga disimpan dalam database lain khusus untuk archive. Saya tidak memilih cara yang ini karena mengingat dedicated archived database lom bisa dibuat di server yang terpisah.

2. mendelete data yang udah dieksport tsb dari table utama

3. menambahkan atribut tanggal di nama file .tsv tersebut, sehingga setiap kali scheduler dijalankan file tersebut dapat dengan mudah dikenali dari namanya, tidak terjadi duplicate file.

Karena mekanisme ini dijalankan secara scheduler, maka mau tidak mau harus dibuat menggunakan script yang bisa dijalanin oatomatis oleh scheduler.

scheduler SQL 2000 bisa menjalankan DOS command, maka cara termudah
yang bisa dilakukan adalah menggunakan command dos. secara khusus memang dos tidak menyediakan fungsi untuk mengambil current date value (seperti getdate() di SQL, (now) di Delphi atau (date) di vbscript), tapi ternyata dos command bisa diakalin untuk penambahan tanggal pada nama file.

Setelah googling2 ternyata kutemukan di windowsitpro bahwa caranya sangat mudah :
pada prinsipnya hanya terdapat 3 langkah :

1. ambil value date sekarang, tulis di file temporary

2. buat sebuah parameter di environment windows

3. set parameter tersebut dengan membaca isi file temporary pada poin 1

4. rename file dengan nama baru %namaparameter%_file

ini contoh scriptnya :

@Echo OFF
TITLE DateName
REM DateName.CMD
REM takes a filename as %1 and renames as %1_YYMMDDHHMM
REM
REM ————————————————————-
IF %1.==. GoTo USAGE
Set CURRDATE=%TEMP%\CURRDATE.TMP
Set CURRTIME=%TEMP%\CURRTIME.TMPDATE /T > %CURRDATE%
TIME /T > %CURRTIME%

Set PARSEARG=”eol=; tokens=1,2,3,4* delims=/, ”
For /F %PARSEARG% %%i in (%CURRDATE%) Do SET YYYYMMDD=%%i%%j%%k

Set PARSEARG=”eol=; tokens=1,2,3* delims=:, ”
For /F %PARSEARG% %%i in (%CURRTIME%) Do Set HHMM=%%i%%j

Echo RENAME %1 %YYYYMMDD%_%1
RENAME %1 %YYYYMMDD%%HHMM%_%1
GoTo END

:USAGE
Echo Usage: DateName filename
Echo Renames filename to filename_YYYYMMDDHHMM
GoTo END

:END
REM
TITLE Command Prompt

Thanx to http://www.windowsitpro.com
Selamat mencoba !!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s