วันพุธที่ 4 กรกฎาคม พ.ศ. 2555

sql server Create New Table From Select Query

โจทย์ ผมต้องการสร้างตารางมารองรับ ข้อมูลจากการ select data มาเพื่อประมวลผลต่อ

 ตัวอย่าง
สร้างเป็น Table จริง
select * into [New Table] from [db name].INFORMATION_SCHEMA.COLUMNS order by TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME 

  สร้างเป็น Temp Table ซึ่งจะถูกทำลายเมื่อ Connection Session ถูกทำลาย
 select * into ##[New Table] from [db name].INFORMATION_SCHEMA.COLUMNS order by TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME 

  อีกตัวอย่างคือ exec dynamic Query into temp table
declare @sql1 varchar(max) 
set @sql1 = 'select * into ##pad from [db name].INFORMATION_SCHEMA.COLUMNS order by TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME' 
exec(@sql1) select * from ##pad

 และถ้าสร้าง Global Table ใน Stored Procedure GT จะใช้งานได้เฉพาะ Proc นั้นเท่านั้นและถ้าสั่ง exec ซ้ำก็จะไม่ได้ข้อมูลชุดเดิมออกมา เพราะฉนั้น นำมาทำงานใน Stored Procedure ได้ดี บันทึกเตือนความจำ แต่หากมีประโยชน์กับผู้ทำงานท่านอื่นๆบ้างก็ยินดีเป็นอย่างยิ่ง “ขอให้ถือประโยชน์ของเพื่อนมนุษย์ เป็นกิจที่หนึ่ง”

วันจันทร์ที่ 16 มกราคม พ.ศ. 2555

SQL Server : DBCC FREEPROCCACHE DBCC, DROPCLEANBUFFERS

DBCC FREEPROCCACHE ใช้ในการ Clear Procedure Cache เมื่อมีการ run Stored Procedure ใหม่

DBCC DROPCLEANBUFFERS ทำการ Empty data cache แทนการที่จะต้อง Shot Down and boot Server (Cool Reboot). เพราะข้อมูลของ query ก่อนหน้านี้จะถูกเก็บไว้ที่ buffer cache. ทำเพื่อทดสอบ query ว่าได้ผลอย่างไรอย่างแน่นอน ไม่ใช่ผลมาจาก Cache