วันพุธที่ 22 เมษายน พ.ศ. 2552

FLAC (Free Lossless Audio Codec)

มันคือวิธีการจัดเก็บข้อมูลเอาไว้สำหรับบันทึกเสียงในรูบแบบ digital ซึ่งเป็นการเก็บข้อมูลเสียงที่ไม่มีการสูญเสีย(lossless) โดยใช้วิธีการบีบอัดแบบพิเศษ ไม่เหมือนกัน รูบแบบ mp3 (lossy)
ระบบเสียงที่ถูกเก็บบันทึกจะมี 2 ประเภท
1. lossy มีการสูญเสียคุณภาพของเสียง อาจเนื่องมาจากการบีบอัดข้อมูล (mp3, ogg)
2. lossless ไม่มีการสูญเสียคุณภาพของเสียง (wav, flac, m4a, ape)

เมื่อเทียบกับ wav ขนาดของ flac มีขนาดเล็กกว่า แต่คุณภาพเป็น lossless เช่นเดียวกัน
เปรียบเทียบที่ไฟล์เดียวกัน 192kbps
WAVE = 52,649,564 Bytes
FLAC = 35,231,309 Bytes
ogg = 6,590,688 Bytes
mp3 = 7,165,282 Bytes

แต่ขนาดของมันจะใหญ่ขึ้น แต่ถามว่าคุ้มมั้ย ... คุ้มนะ เดี๋ยวนี้ฮาร์ดดิสก์ เนื้อที่มหาศาล แต่ก็อย่างว่านะ จะมีใครแยกแยะเสียงพวกนี้ได้มั้ยว่ามันมาจาก mp3 หรือ flac

What is Dry Ice???

เมื่อหลายวันก่อนไปเดิน pantip มาแล้วบังเอิญเห็นงานแข่งกันทำให้ CPU แรง (Over clock) โห ควันกระจายเลย เท่าที่เดาน่าจะเป็น Dry Ice หรือไม่ก็ Liquid Nitrogen

ลองมาดูกันว่าเอาไปใช้ทำอะไรกัน



ดรายไอซ์ หรือ น้ำแข็งแห้งนั้น แท้จริงแล้ว มันคือคาร์บอนไดออกไซด์ ในสถานะของแข็ง (solid) หรือชื่ออย่างเป็นทางการของ ดรายไอซ์ ก็คือ คาร์บอนไดออกไซด์แข็ง (solid Carbondioxide) ซึ่งมีขั้นตอนในการผลิตค่อนข้างซับซ้อน นั่นก็คือต้องนำก๊าซคาร์บอนไดออกไซด์มาผ่านการอัดและลดอุณหภูมิลงภายใต้ความดันสูง จนได้ออกมาเป็นคาร์บอนไดออกไซด์เหลว จากนั้นก็ต้องทำการลดความดันลงอย่างรวดเร็ว โดยทั่วไปแล้วจะใช้วิธีการพ่นคาร์บอนไดออกไซด์เหลวออกไปสู่ความดันบรรยากาศ จึงจะได้ คาร์บอนไดออกไซด์แข็ง หรือ น้ำแข็งแห้งออกมาเป็นรูปร่างต่างๆ ครับ

น้ำแข็งแห้ง ในปัจจุบันได้นำมาใช้ในอุตสาหกรรมอาหาร จำพวกไอศครีม เบเกอรี่ เนื้อสัตว์ ในการแช่แข็ง เพื่อถนอมหรือเก็บอาหาร ทำให้การขนส่งอาหารเป็นไปได้อย่างสะดวกมากขึ้น และที่จะเห็นได้เยอะ ก็คือการนำไปใช้เป็นควันคล้ายหมอกขาวๆ ตามเวทีคอนเสิร์ต โดยน้ำแข็งแห้ง มีอุณหภูมิของตัวมันเองอยู่ที่ -79 องศาเซลเซียส ซึ่งถือว่าเย็นจัดกว่าน้ำธรรมดาทั่วไป ซึ่งหากเราวางน้ำแข็งแห้งทิ้งไว้ที่อุณหภูมิห้อง น้ำแข็งแห้งก็จะระเหิดกลายเป็นไอ โดยไม่ผ่านการเป็นของเหลวก่อนแต่อย่างใด เหตุนี้น่าจะเป็นที่มาของคำว่า น้ำแข็งแห้ง ที่เราใช้กันอยู่ทุกวันนี้ล่ะครับ (ถ้าผมจะเรียกน้ำแข็งธรรมดาว่าเป็น น้ำแข็งเปียก จะตลกมั้ยเนี่ย?)


ข้อพึงระวัง และอันตรายของน้ำแข็งแห้ง ย่อมมีแน่นอนครับ ด้วยเหตุผลหลายประการ อย่างแรกก็คือ อุณหภูมิที่เย็นจัดของมัน ทำให้เราไม่สามารถทำการใช้ผิวหนังสัมผัสกับมันโดยตรงได้ เพราะอาจเกิดอาการที่เรียกว่า frost bite หรือผิวหนังไหม้จากอุณหภูมิเย็นจัด (ปวดแสบปวดร้อนกว่าไหม้จากน้ำร้อนลวกอีกครับ) การจับน้ำแข็งแห้ง จึงควรอาศัยถุงมือ หรือกระดาษมารองอีกชั้นหนึ่ง ก็พอจะช่วยได้บ้าง แต่อันตรายที่ยิ่งกว่าของน้ำแข็งแห้งก็คือ ต้องไม่ลืมว่า ทั้งก้อนน้ำแข็งแห้งนั้น มันคือคาร์บอนไดออกไซด์เพียวๆ เลย ซึ่งจัดว่าเป็นก๊าซอันตรายต่อระบบทางเดินหายใจของเราครับ ดังนั้น หากต้องเล่นกับน้ำแข็งแห้งที่มีการระเหิดมากๆ จึงควรอยู่ในห้องที่มีอากาศถ่ายเทค่อนข้างดี หรืออยู่กลางแจ้ง นอกจากนี้ การเก็บน้ำแข็งแห้ง ก็ไม่ควรเก็บในภาชนะที่ปิดสนิท เพราะคาร์บอนไดออกไซด์ที่ระเหิดออกมาอาจรวมตัวและเกิดระเบิดขึ้นได้ และ น้ำแข็งแห้งไม่ควรที่จะมาเก็บในตู้เย็น เพราะอุณหภูมิของน้ำแข็งแห้งนั้น ต่ำกว่าอุณหภูมิของตู้เย็น ซึ่งอาจทำให้ตู้เย็นไม่ทำงานครับ สุดท้ายก็คือ ห้ามบริโภคน้ำแข็งแห้งโดยตรง หรือแม้กระทั่งน้ำที่ถูกแช่ด้วยน้ำแข็งแห้ง เนื่องจากมันเป็นคาร์บอนไดออกไซด์นั่นเองครับ

เห็นแล้วใช่มั้ยครับว่า น้ำแข็งแห้ง นอกจากที่มันจะมีประโยชน์เฉพาะทางของมัน ซึ่งมีอุณหภูมิที่ต่ำมากๆ แล้ว มันก็ยังมีอันตรายที่เราต้องคำนึงถึงอีกด้วย ด้วยความปรารถนาดีจากทีมงานโอเวอร์คล๊อกโซนครับ ....

หลังจากที่รู้จักกับน้ำแข็งแห้งกันแล้ว โดยเฉพาะอันตรายที่เราต้องระมัดระวัง เราก็มาเริ่มโปรเจคต์ดรายไอซ์ของเรากันเลยดีกว่าครับ ซึ่งก็คงจะหนีไม่พ้นการเอาน้ำแข็งแห้ง มาเป็นส่วนสำคัญของชุดระบายความร้อนซีพียู ซึ่งจะทำให้อุณหภูมิของซีพียูลดต่ำลงไปกว่าศูนย์องศาเซลเซียส และส่งผลถึงความสามารถในการโอเวอร์คล๊อกโดยตรง.... เริ่มน่าสนใจแล้วใช่มั้ยครับ ... เพื่อไม่ให้เป็นการเสียเวลา ก็ตามไปชมกันต่อเลย

ที่มา http://www.overclockzone.com/spin9/review/cpu/amd/dryice_4000+/index.html

การใช้ น้ำแข็งแห้งและไนโตรเจ้นเหลว ...
เป็นอีกวิธี ในการ ลดอุณหภูมิ ของคอมพิ้วเตอร์ ของท่านอย่างฉับพลัน

โดยทีตัว น้ำแข็งแห้งเอง ก็คือ คาร์บอนไดออกไซต์ ในสถานะ ของแข็ง ซึ่งมีอุณหภูมิติดลบ -78.5 องศา C ... แต่น้ำแข็งแห้งเพียวๆ นั้น จะไม่สามารถทำให้อุณหภูมิ ของฮาร์ดแวร์ ท่านได้ลบถึงขนาด -78.5c แน่นอน ... เพราะว่า เมื่อก๊าซเย็นเฉยๆ ผ่านกับหน้าอลูมิเนียม หรือ ทองแดง ... มันคงไม่เย็นได้ขนาดนั้น ...
สิ่งที่ต้องการใส่ คือ ACETONE ซึ่งเป็นสารเคมีชนิดหนึ่ง ที่มีอยู่ในน้ำยาล้างเล็บ .. ลองไปดมดูครับ น้ำยาล้างเล็บ กลิ่นเหมือน ACETONE ... แต่ถ้าสมองท่านเสื่อม หรือว่าสูดแล้ว หน้ามืด หรือ หมดสติ ผมไม่รับผิดชอบนะครับ อิอิ .... และ ACETONE จะรับความเย็ฯจาก DRYICE .. และเมื่อ ACETONE เย็นลง ... ก็เหมือนกับเอาน้ำเย็นมากๆ ไปเทใส่ทองแดงนั่นแหละครับ .. ทองแดงก็จะเย็นตาม .. โดยที่ ACETONE เราจะใส่แค่ 1-2 ครั้งเท่านั้น ก่อนเริ่มเล่น ... หลังจากนั้น คอยเติมน้ำแข็งแห้งอย่างเดียว
และน้ำแข็งแห้งไม่ควรเก็บไว้ในที่ ที่ไม่มีอากาศถ่ายเท ... เพราะมันคือคาร์บอนไดออกไซต์ ... ถ้าใช้งานไปซักพัก แล้วมึนหัว ให้ออกไปสูดอากาศ .... น้ำแข็งแห้ง จะระเหิดอยู่ตลอดเวลานะครับ ... ไม่ใช่ละลายเป็นน้ำ
อซิโตน หรือ เมธิว แอลกอฮอลล์ ใช้ได้เหมือนกัน

ส่วนในโตรเจนเหลว ... อุณหภูมิ เย็นถึง ติดลบ -196 องศา c ... ซึ่งถ้าโดนมือโดยตรง ก็ลาก่อนเช่นกัน ... ไนโตรเจ้นเหลวนั้น ไม่ต้องใช้สารเคมีใดๆ ในการช่วยนำความเย็นไปยังหน้าทองแดง ... เพราะในเมื่อมันเหลวอยู่แล้ว .... ลักษณะจะเหมือนน้ำเปล่า เดือด ปุดๆ ตลอดเวลา และมีไอเย็นพวยพุ่งออกมาตลอด ...
แต่การใช้ ไนโตรเจนเหลวนั้น จำเป็นต้องมีภาชนะบรรจุเฉพาะ สำหรับการนี้เท่านั้น ... มิเช่นนั้น เก็บก๊าซไนโตรเจ้น(ไอเย็นที่ระเหยนั่นแหละครับ) ไม่อยู่ ... โดยถังโดยเฉพาะของไนโตรเจ้นเหลว นั้นมีหลายขนาด ตั้งแต่ 5 ลิตร ไปจนถึง 10000 กว่าลิตรเลยก็มี ... ถังยิ่งจุได้มาก อัตราการระเหย ของก๊าซในถังก็ยิ่งมาก .... แต่ราคาค่อนข้างสูงอยู่มากครับ ... จะลงทุนซื้ออุปกรณ์ไนโตรเจ้นเหลว เพื่อจะใช้กับอะไรก็แล้วแต่ ทั้งชุด แค่เริ่มต้นก็หลายหมื่นแล้วครับ ไหนจะค่าก๊าซเหลว ที่จะต้องไปเติมทุกครั้งที่ใช้งานอีก (ถ้าหมด) ... การเล่น เราก็จะเท ไนโตรเจ้นเหลว ซึ่งเป็นของเหลวที่มีอุณหภูมิ -196 องศา ลงไปใน ท่อทองแดงหรืออลูมิเนียม ที่จะอธิบายในส่วนต่อไปครับ ... การหล่อเย็นกับคอมพิ้วเตอร์ นี้ไม่ว่า HW ส่วนใด จะเป็ฯการหล่อเย็นแบบ Buffer .. หรือประมาณว่า .. ใช้ความเย็นกดทับความร้อน ... แต่ค่าความเย็นมากกว่าค่าอุณหภูมิความร้อนนะครับ .

ที่มา http://forums.overclockzone.com/forums/showthread.php?t=385275

วันจันทร์ที่ 6 เมษายน พ.ศ. 2552

การทำให้ SQL Server 2000 ใช้ memory มากกว่า 2G

ถ้าใช้ Windows 32bit และเครื่องมีแรมตั้งแต่ 4GB ขึ้นไป ก็ต้องไปแก้ไขไฟล์ boot.ini ครับ
ถ้าเป็น Windows 64bit ไม่ต้องแก้ไขอะไรทั้งสิ้น

การ แก้ไขไฟล์ boot.ini ก็คลิกขวาตรง My Computer -> Properties -> Advance -> Startup and Recovery -> Settings -> Edit
มันจะ เปิดไฟล์ boot.ini ขึ้นมาด้วยโปรแกรม Notepad เราก็เติม /PAE เข้าไปหลัง Operating System Choice ที่เป็น Windows ตัวที่เราต้องการได้เลย
ตัวอย่าง
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /PAE

เสร็จแล้วก็ Save และปิดไฟล์นี้ได้เลย แล้ว Restart เครื่องคอมพิวเตอร์ 1 ครั้ง...


ที่นี้...ที่ SQL Server
ถ้าเป็น SQL Server 32bit ก็ต้องตั้งค่าให้มันใช้ AWE ก่อน
ส่วน SQL Server 64bit ไม่ต้องแก้ไขอะไรเลยเหมือน Windows 64bit เช่นกันครับ...

การตั้งค่า AWE

ใน SQL Server Management Studio หรือ Enterprise Manager นั้น...
ให้คลิกขวาที่ชื่อเครื่อง (Database Server) แล้วเลือก Properties
ไป ที่ Memory แล้วติ๊กถูกตรง Use AWE to allocate memory แล้วกด OK และตามด้วยการ Restart SQL Server Service ครับ (คลิกที่ชื่อเครื่องแล้วเลือก Restart ครับ)

*** ใน SQL Server 64bit ไม่ต้องติ๊กนะครับ ***

คำสั่งการทำ awe (Enterprise only)

EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC master.dbo.sp_configure 'awe enabled', 1
RECONFIGURE
GO

reindex (ต่อจากอันก่อน)

เราควร ใช้คำสั่ง dbcc dbreindex เมื่อ index เกิด fragmentation ขึ้นมาครับ เพื่อแก้ไขปัญหา performance ที่แย่ลง เนื่องจาก fragmentation ของ index ( ก็คล้าย ๆ กับการ defrag hard disk แหละ )

การ จะตอบว่าใช้เมื่อไหร่ก็ขึ้นกับ fragmentation ของ index น่ะครับ ถ้าเกิด fragmentation มากก็ควรจะ reindex ซะ เพื่อให้ database server ทำงานได้เร็วขึ้น ซึ่งใน SQL Server จะมีคำสั่ง dbcc showcontig เอาไว้ดูว่า index เกิดมี fragmentation รึเปล่า

แล้วเราจะให้มัน re บ่อย ๆ ดีไหมครับ ( ประมาณเดือนละครั้ง ) พอดีผมไปเห็นในตัว database maintenance plans

บ่อย ๆ ถ้าไม่กลัวเสียเวลาก็ทำได้ครับ ส่วนจะทำบ่อยแค่ไหน ก็คงต้องพิจารณา fragmentation ของ index ซึ่ง fragmentation ของ index จะมากน้อย ก็ขึ้นกับพฤติกรรมการ insert, update, delete ข้อมูลใน table นั้นๆ อีกทีหนึ่ง เพราะ ถ้าไม่มีการ insert, update, delete ข้อมูลใน table เลย หรือ มีแต่น้อยมาก ความถี่ในการ reindex ก็ไม่จำเป็นจะต้องถี่มาก ( คือ กรณีแบบนี้ reindex ไปมันก็ไม่ช่วยให้การทำงานของ database server เร็วขึ้นสักเท่าไหร่ )

ข้อเสียของการ reindex ที่สำคัญที่ต้องพิจารณา ก็คือ ช่วงที่กำลังทำงานอยู่มันจะ เกิด blocking ทำให้ application ไม่สามารถทำงานได้ ดังนั้น ถ้าทำบ่อย ๆ มันก็จะ เกิด blocking บ่อย ๆ แต่เราก็สามารถเลี่ยงไปทำเวลาที่ไม่มี user ใช้งานได้ เช่น ตอนกลางคืน


สรุป ถ้ายังคิดอะไรไม่ออก ก็ เดือนละครั้งไปก่อนก็ได้ครับ

วิธีกรใช้ dbcc showcontig

- Pages Scanned จำนวน page ของข้อมูลใน table หรือ index ถ้าเยอะแสดงว่า table หรือ index ใหญ่
- Extents Scanned จำนวน extent ของข้อมูลใน table หรือ index ถ้าเยอะแสดงว่า table หรือ index ใหญ่

- Extent Switches จำนวนครั้งที่เกิดการ switch extent เมื่อมีการอ่านข้อมูล ถ้าเยอะแสดงว่ามี fragmentation เยอะ เปรียบเทียบเหมือนไฟล์บน hdd ที่มี fragment เยอะ เวลาอ่านไฟล์ก็จะกระโดดไป กระโดดมาหลายครั้ง

- Avg. Pages per Extent ก็เอา จน. page / จน. extent

- Scan Density [Best Count:Actual Count] คือ ค่าเปรียบเทียบระหว่าง จน. extent ที่ switch ในกรณีสมมติว่าข้อมูลต่อเนื่องกันอย่างสมบูรณ์ (best count) / ค่าจริง (เอามาจาก extents switch) ซึ่งยิ่งใกล้ 100 ยิ่งดี

- Logical Scan Fragmentation และ - Extent Scan Fragmentation
สองตัวนี้คือ ค่า fragmentation ของ page และ extent ซึ่ง ยิ่ง ใกล้ 0 ยิ่งดี

- Avg. Bytes Free per Page จน.พื้นที่ที่เหลือ / page
- Avg. Page Density (full) ค่าเป็น % ถ้าค่าสูง แสดงว่า page มีข้อมูลค่อนข้างเต็ม
สอง ตัวนี้จะเกี่ยวข้องกับ fill factor ของ index และขึ้นกับพฤติกรรมของการ insert, update, delete ข้อมูลด้วย ซึ่งจะมากดี หรือจะน้อยดี ก็แล้วแต่กรณี

คร่าว ๆ แบบภาษาพูดง่าย ๆ ก็คือ ถ้า table ไม่ค่อยมีการ insert, update, delete แล้วล่ะก็ ( เพราะ การ insert, update, delete จะทำให้เกิดการเปลี่ยนแปลงของ index ) ให้ใส่ fill factor ให้สูง ๆ ใกล้ๆ 100% แล้ว avg. byte free per page จะน้อย และ avg page density ก็จะมี % สูงตามไปด้วย ทำให้เวลาอ่านข้อมูลที่ต่อเนื่องกันแล้วอ่านได้เร็วกว่า

เปรียบ เทียบกับสมุดจดงานก็แล้วกัน กรณี fill factor สูง ก็นึกถึงสมุดจดงาน ที่บังคับให้เขียนเต็มทุก ๆ หน้านะครับ เวลาอ่าน ก็จะอ่านได้ต่อเนื่องได้เร็ว เพราะ จน.ครั้งที่พลิกหน้าก็น้อย ไม่โดดไป โดดมา

ซึ่งหาก table ไม่ค่อยเปลี่ยนแปลงแล้วไปใช้ fill factor 50% มันก็เหมือนกับ สมุดที่เราเขียนแค่ครึ่งหน้า ก็ขึ้นหน้าใหม่แล้ว มันจะเปลืองหน้า แถมเวลาอ่านยังต้องพลิกหน้าหลายครั้งกว่าด้วย ทำให้อ่านได้ช้าลง

ทีนี้ สมมติว่า table มีการ insert หรือ แก้ไข อยู่เรื่อย ๆ แล้วเราใช้ fill factor 100% ก็เหมือนสมุดจดที่เต็มหน้าแล้ว เวลาแทรกข้อมูล จะทำยังไง (ซึ่งถ้าการ insert เป็นการต่อท้ายอย่างเดียว ก็จะไม่เป็นปัญหา แต่สมมติว่าเราจะไป insert ข้อมูลตรงกลาง ของ table ) ในการทำงาน เมื่อหน้ากระดาษ (page) เต็ม ก็จะต้องไปเพิ่ม page ใหม่ต่อข้างท้าย ทำให้เวลาอ่าน ต้องกระโดดไปอ่านข้างท้ายทีหนึ่ง แล้วค่อย กระโดดกลับมาอ่านต่อจากเดิมที่ค้างเอาไว้

( ดังนั้น ถ้า table มีการเปลี่ยนแปลงข้อมูลส่วนที่ก่อให้เกิดการเปลี่ยนแปลง index บ่อย แล้วเราไปใช้ fill factor ของ index เป็น 100% เจ้า index พวกนี้ก็จะเกิด fragmentation ได้อย่างรวดเร็ว คือ reindex ไปแป๊บ ๆ เดี๋ยวมันก็เกิด fragmentation อีกล่ะ )

แล้วหากใช้ fill factor 50% หละ ก็คือ แต่ละหน้าของสมุดจะใช้แค่ครึ่งเดียว ทำให้เวลา insert หรือแทรกข้อมูลมีที่ว่างเหลือให้อีก ซึ่งมันเหมือนจะดีกว่ากรณีสักครู่นี้ แต่ก็อีกแหละ ถ้าหากมีการอ่านข้อมูลต่อเนื่องกันเยอะ ๆ มันจะสู้กรณีที่เป็น fill factor 100% ไม่ได้ เพราะมันต้องพลิกหน้าอ่านเยอะกว่า

ซึ่งการ reindex ก็คือ การเอาสมุดแบบนี้มาเขียนเรียงใหม่นั่นเอง โดยเมื่อเขียนใหม่แล้วก็จะเหลือพื้นที่ว่าง ๆ ตาม fill factor ของ index ตามที่กำหนดเอาไว้ สมุดแต่ละหน้า ก็คือ page นั่นแหละ ส่วน extent ก็คือ สมุดหลาย ๆ หน้ารวมเรียกเป็น 1 extent

ก็อาจจะไม่ถูกต้อง 100% นะครับ อธิบายแบบเทียบง่าย ๆ Azn

อยาก ให้คุณลอง จดบันทึกค่าจาก dbcc showcontig เอาไว้ ทั้งก่อน และหลัง การทำ dbcc dbreindex แล้วก็เอามาเปรียบเทียบกันน่ะครับ แล้วจากนั้น อาจจะ run เจ้า dbcc showcontig เรื่อย ๆ แล้วคอยเทียบการเปลี่ยนแปลงเอา เพื่อหา config ที่เหมาะสมสำหรับ app ของคุณเอง เช่น อยากแก้ fill factor หรือไม่ หรือ จะตั้ง schedule ให้ reindex ถี่แค่ไหนดี

ที่มา http://www.thaiadmin.org/board/index.php?topic=46795.0

การ re-index sql server 2000

เป็นวิธีการ re-index ของคุณ insanity จาก thaiadmin
1. เพิ่ม log file ที่ 2 โดยระบุที่อยู่ให้อยู่ใน drive E
- เปิด Enterprise Manager ขึ้นมา แล้วเลือก daabase ตัวที่ต้องการ แล้ว คลิ๊กขวา --> Properties
- คลิ๊ก Tab : Transaction Log จะเห็นไฟล์ log ปัจจุบัน ( ผมเรียกเป็นไฟล์ log ที่ 1 ละกัน)
- ตรงใต้ชื่อไฟล์ log ที่ 1 ให้เพิ่มชื่อไฟล์ log ที่ 2 ที่จะสร้างใหม่ ในช่อง File Name และกำหนด Location เป็น drive E ( ถ้าคิดไม่ออก ก็ตั้งคล้ายๆ ไฟล์ที่ 1 ก็ได้ ไม่ต้องโลเลคิดมาก ) โดยที่ไฟล์ log ที่ 2 นี้ ให้มีค่า maxmimum file size เป็น unlimited

2. กำหนด max size ของ log file ที 1(ใน drive D)
- กลับไปเลือกที่ ไฟล์ log ที่ 1 แล้ว ดูตัวเลขตรง space allocated เอาไว้ แล้วดู maximum file size ข้างล่างว่าเป็นอะไรแล้วจำไว้ ( ถ้าไม่เคยไปแตะต้องมันเลย ควรจะเป็น unlimited )
- สำหรับ ไฟล์ log ที่ 1 นี้ ให้แก้ไข ตรง maximum ให้มากกว่า space allocated แต่ระวังอย่าให้มากจน drive D ไม่พอ ไม่ต้องคิดมาก เช่น ไฟล์ log ที่ 1 ขนาด 10G ก็ใส่ maximum เป็น 11G ก็ได้

หลังจากตรงนี้แล้ว ให้กด OK ๆ ออกไป ผลลัพธ์ที่จะได้ก็คือ เมื่อ sql server บันทึก log จะบันทึกลงไปใน ไฟล์ log ที่ 1 จนเต็ม ถึง max. size ที่กำหนดไว้แล้ว จะขยับขยายไปใช้ไฟล์ log ที่ 2 เพื่อทำงานต่อ ( ต้องทำแบบนี้เพื่อแก้ไขปัญหา drive D ที่มีพื้นที่น้อยอยู )

3. ทำ reindex ( ผมใช้ optimization job ละกัน )
- ไปที่ Enterprise Manager --> Management --> Database Maintenance Plan
- คลิ๊กขวา --> New maintenance plan
- ก็ next จนเจอหน้า Update Data Optimization Information ให้ติ๊กเลือก Reorganize data and index pages ส่วนตรงปุ่ม option ก็เลือกตัวบน (Reorganize page with the original amount of free space) ก็ได้ครับ
- ยังไม่จบหน้านี้นะ.. ให้กดปุ่ม Change เพื่อตั้งเวลาที่จะให้มันทำงาน --> เลือกเวลาตามสะดวก อย่าลืมว่า ขณะที่ทำ reindex อยู่ user จะใช้งานไม่ได้
- หน้าต่อไป เช่น พวก backup ก็ติ๊กออก (uncheck) เพราะว่าไม่ต้องการ backup ส่วนพวก write report file หรือพวก history ก็ให้ write ไว้ก็ได้คร้บ --> แล้วก็ next ๆ จนจบ
- เมื่อทำเสร็จ sql server จะสร้าง job ขึ้นมา 1 ตัว ไปหาดูได้ที่ Management --> SQL Server Agent --> Jobs

เสร็จแล้วครับ แล้วก็รอจนมันทำงานจนจบ หรือจะไป คลิ๊กขวาที่ job ของมัน แล้วสั่ง start เลยก็ได้ ไม่ต้องรอตามเวลาที่ตั้ง
(เมื่อ เสร็จจบทุกอย่างแล้ว คุณควรจะ disable ตัว job ในข้อ 3 นี้ไว้ หรือลบออกก็ได้ เพื่อป้องกันไม่ให้ sql server run มันโดยที่คุณอาจจะไม่ได้ตั้งใจ เพราะระหว่าง run นั้น database จะใช้งานไม่ได้)

4. หลังจากที่เสร็จแล้ว ทำการ truncate log ทิ้งไป เพื่อให้ลบ log file ที่ 2 ( สร้างไว้ในข้อ 1 ) ออกได้
- เปิด Query analyzer ขึ้นมา ใช้คำสั่ง backup database ชื่อดาต้าแบส with truncate_only

ถ้าไม่ truncate ทิ้งก้อน ก็อาจจะมี log บันทึกค้างอยู่ในไฟล์ log ที่ 2 ซึ่งจะทำให้ sql server ไม่ยอมให้ลบไฟล์ log ที่ 2 ทิ้ง

5. ลบ log file ที่ 2 ที่สร้างไว้
- เปิด Enterprise Manager ขึ้นมา แล้วเข้าไปที่ Properties ของ Database แล้วก็ --> Tab: Transaction log --> เลือกไฟล์ log ที่ 2 --> กด Delete

6. แก้ไข max size ของ log file ที่ 1 กลับค่าเดิม
- เลือกไฟล์ log ที่ 1 แล้วแก้ไข maximum file size เป็นค่าเดิม ( น่าจะเป็น unlimited )

จบการทำ reindex ไปนอนละ ( พิมพ์เยอะนะเนี่ย )

แล้วก็สังเกตุว่า user ใช้งานแล้วดีขึ้นแค่ไหน

ที่มา http://www.thaiadmin.org/board/index.php?topic=83142.0