tag:blogger.com,1999:blog-2586302279862951672024-03-06T12:25:53.649+07:00Tanakorn Thai Oracle DBAเทคนิคสำหรับ Oracle DBA แบบไทย ๆTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.comBlogger70125tag:blogger.com,1999:blog-258630227986295167.post-24642837317966630072016-05-26T10:07:00.002+07:002016-05-26T10:29:15.145+07:00คนค้นคนตอน พฤติกรรมของ Left JoinRDBMS: MSSQL2008 R2
เวลาเราทำการ Left/Right Join ร่วมกับ Where Condition เราอาจจะเจอปัญหาที่ทำให้เรางงกับวิธีการประมวลผลของคิวรี
ลองดูตัวอย่างข้างล่าง
1. สร้างตารางทดสอบชื่อ DEPT กับ EMP ด้วยสคริปต์ข้างล่าง EMP.DEPT_ID เป็น FK ที่ชี้ไปหา DEPT.DEPT_ID
create table dept (dept_id int,dept_name varchar(20))
create table emp (emp_id int,emp_name varchar(20), dept_id int)
insert into dept values (Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com1tag:blogger.com,1999:blog-258630227986295167.post-37543387873559115262016-02-14T07:20:00.000+07:002016-02-14T07:34:22.212+07:00การใช้ Roles บน MSSQLRDBMS: MSSQL2008 R2
ใน SQLServer มีการใช้ Role เช่นเดียวกับ Oracle
1. สร้าง Role
use test
create role test_exec_role
2. กำหนดสิทธิ์ให้กับ Role ข้างล่างนี้เป็นการกำหนดสิทธิ์ในการ Execute Stored Procedure ให้กับ Role ที่เราสร้างไว้ เราสามารถสร้าง Script ได้โดยใช้ SQL Statement เพื่อช่วยให้ไม่ต้องเขียนทีละ Statement
use test
select 'grant exec on dbo.'+name+' to Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-26122951125609867572014-05-04T21:53:00.002+07:002014-05-04T22:22:51.630+07:00การแสดงผลแบบ Transpose ข้อมูลจาก Column มาเป็น Rowโพสต์ครั้งแรก: 28 พฤศจิกายน 2010
ในบางกรณีเราอาจจะต้องการ แสดงผลข้อมูลที่เรียงตัวอยู่เป็นคอลัมน์ให้กลับมาเป็นแถว อย่างเช่นในกรณีที่ เราสร้างตารางที่เป็นเหมือนเทมเพลตเอาไว้เก็บค่าซึ่งจะใช้เป็นอัตราคูณกับค่าในตารางที่แสดงรายการธุรกรรม อย่างเช่นถ้าเรามีตารางเทมเพลต TAX_RATE
SQL> create table tax_rate (country varchar2(30), col1 number, col2 number, col3 number);Table createdSQL> insert Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-67277088123022618242014-05-04T21:45:00.001+07:002014-05-04T22:21:39.621+07:00เปลี่ยนชื่อฐานข้อมูลโพสต์ครั้งแรก: 28 มกราคม 2012
เราจะเปลี่ยนชื่อฐานข้อมูลได้หรือเปล่า พรหล้า พรหล้า!พรหล้า SE หญิงคนเดียวในทีม ที่ทำหน้าที่ดูแลฐานข้อมูล Oracle อยู่ ต้องสะดุ้งจากภวังค์ "อะไรคะ ขออีกที จะเปลี่ยนชื่อผู้ดูแลฐานข้อมูลหรือคะ" เธออยากจะให้การฟังผิดของเธอเป็นเรื่องจริงเสียเหลือเกิน เพราะเท่าที่เธอเคยรู้การจะเปลี่ยนชื่อฐานข้อมูล Oracle มันค่อนข้างจะยุ่งยาก แล้วก็เสี่ยงกับการที่เบสจะเจ๊งอีกด้วย
Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-56385890287723125482014-05-04T21:37:00.002+07:002014-05-04T22:20:52.542+07:00Drop Databaseโพสต์ครั้งแรก: 15 มกราคม 2012
เราสามารถลบฐานข้อมูล (เฉพาะฐานข้อมูล ไม่รวมโปรแกรม Oracle หรือ Oracle Home)ได้ง่าย ๆ โดยใช้คำสั่ง DROP DATABASE ซึ่งเหมาะกับการลบฐานข้อมูลทดสอบ หรือลบฐานข้อมูลเก่าซึ่งได้ Migrate ไปตัวใหม่เรียบร้อยแล้วเป็นต้น
คุณไม่สามารถจะ Rollback ได้ เมื่อ Drop Database แล้ว
หากต้องการลบฐานข้อมูลรวมทั้งโปรแกรม Oracle ออกไปทั้งหมด ดูที่ Clone Oracle - ก๊อปปี้ฐานTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-87420324487796311322014-05-04T21:05:00.003+07:002014-05-04T22:19:54.304+07:00การเปลี่ยน Hostname และ IP Address บนเครื่อง Solaris10โพสต์ครั้งแรก: 30 ธันวาคม 2011
ดูเพิ่มเติม bit.ly/uTdpl1
Originally Posted by shiv729
Changing the IP on Solaris 10 requires editing two files:
1. /etc/hosts
2. /etc/inet/ipnodes
If you are changing network address, you will need to change the router address in the file:
1. /etc/defaultrouter
Changing the hostname now only requires editing these files:
1. /etc/hosts
2. /etc/Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-37034824049359258482014-05-04T21:01:00.003+07:002014-05-04T22:19:04.592+07:00Clone Oracle - Copy ระบบฐานข้อมูลแบบยกชุดโพสต์ครั้งแรก: 24 ธันวาคม 2511
บางครั้งบางคราว อาจไม่บ่อยนักที่เราจะต้องทำสำเนาทั้งฐานข้อมูล,ทั้งตัวโปรแกรมของ Oracle รวมทั้ง Configuration ทั้งหมดออกมา และนำไปติดตั้งไว้บนเครื่องอื่น (หรือเครื่องเดียวกัน) เพื่อวัตถุประสงค์บางอย่างเช่น การทำฐานข้อมูลทดสอบจากฐานข้อมูลตัวจริง (Production) โดยที่เราต้องการให้ฐานข้อมูลตัวใหม่ที่ทำสำเนาขึ้น มีคุณสมบัติทุกอย่างเหมือนกับฐานข้อมูลตัวต้นฉบับ ยกเว้นไว้Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-36088372965631457092014-05-04T20:44:00.004+07:002014-05-04T22:16:44.369+07:00เปิด Oracle อัตโนมัติตอนบูธเครื่อง Solarisโพสต์ครั้งแรก: 18 ธันวาคม 2011
ปกติเมื่อเราติดตั้ง Oracle บนเครื่องตระกูล Unix และใช้งานไปได้สบาย ๆ สักพัก พอวันหนึ่งเกิดเราต้อง Restart เครื่อง Server แต่ปรากฎว่าเราพบว่า Database ที่เราติดตั้งไว้ไม่ได้ Start ขึ้นมาด้วยทำให้เราต้อง Restart ฐานข้อมูลขึ้นมาเอง บทความวันนี้จะขอพูดถึงวิธีการทำให้ Oracle Start โดยอัตโนมัติเมื่อเราเปิดเครื่อง Server ขึ้นมา ซึ่งรวมถึงการ Start Listener โดยอัตโนมัติTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com1tag:blogger.com,1999:blog-258630227986295167.post-59795579894865830052014-05-04T20:39:00.001+07:002014-05-04T22:15:53.363+07:00RESOURCE ส่วนเกินสิทธิ์
โพสต์ครั้งแรก: 12 ธันวาคม 2011
ป
กติแล้วเวลาเราสร้าง User บนฐานข้อมูล Oracle เราจะ grant บทบาท (ROLE) ที่เป็น CONNECT,RESOURCE ให้ วันนี้เราจะมาดูว่าการ Grant แบบนี้มีผลอย่างไรกับ User ที่เราสร้างขึ้น เริ่มจาก Role CONNECT ก่อน โดยทั่วไปเรา grant สิทธิ์ CONNECT ให้เพื่อให้ User นั้น ๆ สามารถล็อกอินเข้าฐานข้อมูลได้
sys@PAO1> create user korn identified by korn2 default tablespace users;Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-89558741167677777062014-05-04T17:02:00.003+07:002014-05-04T22:14:35.602+07:00"LISTENER", Reception คนเก่งโพสต์ครั้งแรก: 3 ธันวาคม 2011
บทความที่แล้วมีเพื่อนสมาชิกติงมาว่า SYSDATE แท้จริงแล้วคือฟังก์ชั่น ไม่ใช่ Pseudo Column ต้องขอขอบคุณด้วยนะครับสำหรับการท้วงติง ; ) สัปดาห์นี้เราลองมาดูเกี่ยวกับเรื่อง Listener กันดูบ้างนะครับ
ปกติเวลาเราไปติดต่อที่องค์กรใด ๆ เรามักจะพบกับพนักงานหนึ่งหรือหลายคนที่เคาน์เตอร์ที่เห็นได้ง่ายที่สุด พนักงานเหล่านี้มักจะมีหน้าตาน่ารักหรือไม่ก็ดูดีในระดับหนึ่ง และจะคอยTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-13566924962046342602014-05-04T16:59:00.003+07:002014-05-04T22:10:03.559+07:00เฮียไพฯ กับ Date Format
โพสต์ครั้งแรก: 21 พฤศจิกายน 2011
เฮียไพฯ ของเราเป็นผู้จัดการ IT มานานหลายปี วันหนึ่งขณะที่ผมกำลังเขียนคิวรีอยู่ เฮียก็มายืนข้างหลังผม แล้วก็ขอให้ผมช่วยคิวรีในช่วงของวันที่ที่แกอยากดูให้หน่อย ผมก็จัดให้ทันทีใส่ทูคงทูคา (TO_CHAR) ลงไป เฮียแกเห็นหยั่งงั้นแกก็แสดงภูมิรู้ของแกออกมาอีกเช่นเคย "เฮัย ทำไมมันยุ่งยากหยั่งงี้ ดาต้าเบสระดับนี้มันต้องมีวิธีที่ง่ายกว่านี้แน่ หรือว่าคุณไม่รู้วิธีกันแน่เนี่ย" Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-27739432339244411272014-05-04T16:57:00.006+07:002014-05-04T22:08:59.006+07:00Recover ฐานข้อมูล กรณีไฟล์ Redo และ Archived Logs เสียหมด
โพสต์ครั้งแรก: 11 พฤศจิกายน 2011
เราสามารถใช้ Hidden Parameter ในไฟล์พารามิเตอร์ Init.ORA ต่อไปนี้ หากไฟล์ Redo Log ตัวปัจจุบัน (Current Redo Log ซึ่งเป็นตัวที่ระบบฐานข้อมูลกำลังเขียนอยู่เลย) หรืออาจจะใช้ได้กรณีที่เราต้องการ Recover ฐานข้อมูล แล้วไฟล์ Archived Log บางตัวหายไปหรือใช้ไม่ได้
_allow_resetlogs_corruption = true
หมายเหตุ: จะต้องระมัดระวังให้มาก เมื่อใช้พารามิเตอร์ตัวนี้ มันTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-66109294664015849752014-05-04T16:53:00.000+07:002014-05-04T22:08:00.905+07:00SQL คำสั่งเดียว...อยู่!
โพสต์ครั้งแรก: 3 มิถุนายน 2011
เขียนเรื่องของ LWM มาหลายตอนใกล้จะถึงตอนจบ พอดีผมไปเจอบทความใน Oracle Magazine เห็นว่าน่าสนใจเลยแปลมาให้อ่านกันเล่นแก้เบื่อ โดยในบทความนี้ Tom Kytes กล่าวว่า ถ้าเราสามารถทำงานที่เราต้องการโดยสามารถใช้คำสั่ง SQL ธรรมดาคำสั่งเดียวนั้น ย่อมจะดีกว่าการเขียนเป็น Procedural (เขียน SQL หลาย ๆ คำสั่งอยู่ใน BEGIN.. END) ยาว ๆ ซึ่งเนื่องมาจากเบื้องหลังคำสั่ง SQL ของเรามี Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com1tag:blogger.com,1999:blog-258630227986295167.post-82830597467176699992014-05-04T16:41:00.002+07:002014-05-04T22:05:36.895+07:00Light Weight Monitoring System (LWM) ตอนที่ 3
โพสต์ครั้งแรก: 8 เมษายน 2011
ขั้นตอนการทำ Step-by-Step
ขั้นตอนการทำต่อไปนี้เป็นการสาธิตให้เห็นถึงวิธีการสร้างระบบ LWM อย่างง่าย ๆ โดยเริ่มจากสร้าง Tablespace ที่จะใช้เก็บข้อมูล และสร้าง User/Schema ที่จะใช้เก็บข้อมูลของระบบ โดยเราตั้งชื่อว่า LWM, เราจะใช้ SYS เป็นผู้สร้างระบบนี้ เริ่มจากการ Connect เข้าระบบด้วย SYSDBA
วิธีการและสคริปต์ต่าง ๆ ที่ระบุไว้ ณ ที่นี้ได้รับการทดสอบแล้วเป็นการภายในTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-72846899163064694002014-05-04T16:40:00.003+07:002014-05-04T22:05:13.992+07:00Light Weight Monitoring System (LWM) ตอนที่ 5 (จบ)โพสต์ครั้งแรก: 21 มิถุนายน 2011
เราได้พูดถึงระบบ Light Weight Monitoring System (LWM) มาแล้วสี่ตอน ตอนนี้จะเป็นตอนสุดท้าย ซึ่งจะเป็นการนำเอาข้อมูลที่เราได้เตรียมไว้เรียบร้อยแล้วในฐานข้อมูล มาจัดให้อยู๋ในรูปแบบที่เข้าใจง่าย และแน่นอนจะต้องสร้างขึ้นและปรับปรุงข้อมูลได้ง่ายด้วย ด้วยเครื่องมือที่หาได้ทั่วไป
เราจะใช้ Excel ดึงข้อมูลผ่าน ODBC จากฐานข้อมูล LWM, ที่เราเตรียมไว้ดังได้กล่าวมาแล้วในสี่Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-7198314548376969272014-05-04T16:32:00.001+07:002014-05-04T22:05:00.307+07:00Light Weight Monitoring System (LWM) ตอนที่ 4
โพสต์ครั้งแรก: 1 พฤษภาคม 2011
การสร้าง Job เพื่อ Maintain และสร้าง Baseline อัตโนมัติ
วันนี้จะเป็นตอนต่อของการสร้าง LWM แบบ Step-by_Step โดยเมื่อตอนที่แล้วเราได้เตรียมโครงสร้างต่าง ๆ ไว้แล้ว และได้สร้าง Job ที่กำหนดเวลาไว้ให้รันทุก ๆ หนึ่งนาทีเพื่อนำข้อมูลที่เกี่ยวกับ Session เก็บไว้ในตารางก่อนนำมาพล็อตกราฟต่อไป สำหรับวันนี้จะเป็นการเขียนสคริปต์เพื่อ Maintain ข้อมูลในตารางต่าง ๆ ในระบบให้รันTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-49409158465187600822014-05-04T16:24:00.002+07:002014-05-04T22:04:48.398+07:00Light Weight Monitoring System (LWM) ตอนที่ 2
โพสต์ครั้งแรก: 20 มีนาคม 2011
เราจะสร้างกราฟได้อย่างไร?
กราฟจะถูกสร้างใน MS Excel บนเครื่อง Database Server หรือ Client ก็ได้ แต่เนื่องจากเครื่องที่จะใช้แสดงกราฟจะต้องมี MS Excel ผมจึงแนะนำให้รันกราฟบนเครื่อง Client ที่เป็น WindowsXP โดยก่อนที่จะดึงข้อมูลมาแสดงได้ เราจะต้องลงโปรแกรม Oracle Client ก่อน จากนั้นก็สร้าง ODBC Data Source แล้วใช้ฟังก์ชัน Get External Data ใน MS Excel ในการดึงTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-89449984784366251072014-05-04T16:14:00.000+07:002014-05-04T22:04:03.764+07:00Light Weight Monitoring System (LWM) ตอนที่ 1โพสต์ครั้งแรก: 14 มีนาคม 2011
LWM คือระบบที่จะเก็บข้อมูลตามช่วงเวลาที่กำหนดเช่น ทุก ๆ 1 นาที หรือ 5 นาทีเป็นต้น และแสดงผลออกมาในรูปของกราฟ ระบบจะทำการ “เรียนรู้” จากข้อมูลที่ได้ในอดีตเพื่อที่จะสร้าง Baseline ที่ใกล้เคียงและสะท้อนถึงความเป็นจริงปัจจุบันมากที่สุดโดยอัตโนมัติ ซึ่งจะทำให้ผู้ดูแลระบบสามารถตรวจสอบสถานะของระบบโดยเปรียบเทียบกับ Baseline ที่ได้จากข้อมูลในอดีตโดยผ่านภาพกราฟฟิค
ปัTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-71260727726866512192012-06-10T05:14:00.003+07:002012-06-16T16:17:16.111+07:00Isolation Level
ระบบจัดการฐานข้อมูล (Database Management System หรือ DBMS)สมัยใหม่ในปัจจุบันมีคุณสมบัติหลัก ๆ ที่คล้ายคลึงกันมาก โดยเฉพาะระบบฐานข้อมูลที่สร้างขึ้นในเชิงพาณิชย์เพื่อให้สามารถแข่งขันกันได้ ระบบจัดการฐานข้อมูลยี่ห้อต่าง ๆ จึงพยายามพัฒนาคุณสมบัติของตนเองให้เทียบเท่าคู่แข่งเสมอ แต่ในความคล้ายนี้ก็มีบางอย่างที่ยังต่างกัน เรื่องหนึ่งที่ทำให้ระบบจัดการฐานข้อมูล Oracle ต่างจาก Microsoft SQL Server มาก ๆ Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com1tag:blogger.com,1999:blog-258630227986295167.post-49300996819669754922012-05-27T15:41:00.003+07:002012-05-27T15:44:25.824+07:00Rebuild Index: งามอย่างอ้วน
I
ndex
ไม่ควรจะถูก Rebuild ยกเว้นแต่ในบางกรณีเท่านั้น การทำ Rebuild Index
ส่วนใหญ่จะเป็นการสูญเสียเวลาเปล่า ๆ บางคนใช้วิธีการดูว่ามีการลบค่าต่าง ๆ
ออกจาก Index มากแค่ไหน และทำการ Rebuild Index ซึ่งอาจจะเป็นการเข้าใจผิด
คำถามคือถ้า 50% ของค่าใน Index ถูกลบไป ซึ่งทำให้เกิด "รู" ใน Index
เราควรจะ Rebuild หรือเปล่า คำตอบคืออาจจะหรืออาจจะไม่ ขึ้นอยู่กับว่าTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-70196098096197689292012-05-27T15:34:00.001+07:002012-05-27T15:34:28.206+07:00ความลึกลับของ Trigger ตอน3 (จบ)วิธีการที่ถูกต้อง
การแก้ไขโครงสร้างของตาราง จากวิธีการนำไปใช้และการออกแบบตารางจะเห็นได้ว่าเป็นวิธีการที่ผิด ปัญหานี้จำเป็นจะต้องใช้สองตารางดังนี้
SQL> create table primary_currency
2 (country varchar2(2) primary key,
3 currency varchar2(3)
4 )
5 /
Table created.
SQL> create table other_currencies
2 (country varchar2(2),
3 currency varchar2(3),
4 constraint other_currencies_pk
5 Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-7837094348529695652012-05-27T15:02:00.001+07:002012-05-27T15:20:17.476+07:00หลังจากที่หายไปนานสวัสดีครับ นานมากแล้วครับที่ผมไม่ได้เขียนบทความเลย ข้ออ้างเก่า ๆ ที่นำมาใช้ด้วยความละอายแก่ใจก็คือไม่มีเวลา โดยเฉพาะทั้งงานประจำ และงานส่วนตัวซึ่งจะหมายถึงครอบครัวเสียมากกว่าสิ่งอื่นใด
ตอนนี้มีความเปลี่ยนแปลงในงานที่ผมทำ ความรับผิดชอบต่าง ๆ เปลี่ยนไป โอกาสที่จะได้เขียนบทความรับใช้สังคมคงจะน้อยลงไปบ้างในช่วงแรก ๆ แต่ผมก็จะยังเขียนต่อไปนะครับตราบใดที่ยังมีผู้สนใจอ่าน โดยหวังว่าจะมีประโยชน์บ้างไม่Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com3tag:blogger.com,1999:blog-258630227986295167.post-15193832770896617892011-10-29T23:56:00.000+07:002012-09-23T00:02:21.556+07:00Max Dump File Size
ผมจำได้ว่ามากกว่าหนึ่งครั้งที่เราเจอว่าวันดีคืนดี Oracle จะเกิด Internal Error ขึ้น และ Dump เอา Memory ที่ Error นั้นลงมาใน Trace File และที่ยิ่งแย่กว่านั้น Error ตัวนี้เกิดขึ้นอยู่เรื่อย ๆ อาจจะทุก ๆ ครึ่งหรือหนึ่งชั่วโมง ทำให้ดิสค์ของเราเต็มอย่างรวดเร็ว ระหว่างที่เรายังหาสาเหตุเพื่อหยุด Error ตัวนี้ไว้ไม่ได้ เราอาจจะต้องใช้วิธีการคอยตรวจสอบขนาดของข้อมูลในไดเรคทอรีที่เก็บ Trace ไฟล์เหล่านี้และTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-46504243819054124622011-04-29T03:41:00.004+07:002011-04-29T03:50:11.224+07:00ความลึกลับของ Trigger ตอนที่ 2ปัญหาการนำทริกเกอร์ไปใช้คือผู้พัฒนามักจะไม่รู้ผลข้างเคียงในแง่ของการ ควบคุมการใช้งานพร้อมกัน (Concurrency) และระดับความเป็นส่วนตัว (Isolation Level) ของแต่ละ Session บนฐานข้อมูล จุดแข็งที่สุดอันหนึ่งของ Oracle เหนือฐานข้อมูลค่ายอื่น ๆ คือ การอ่านข้อมูล (ใน Session หนึ่ง)ไม่ขัดขวางการเขียนข้อมูล (ในอีก Session หนึ่ง) และในทางกลับกันการเขียนข้อมูลก็ไม่ขัดขวางการอ่านข้อมูลเช่นกัน แต่คุณสมบัติTanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com0tag:blogger.com,1999:blog-258630227986295167.post-90050126056378129912011-02-14T21:10:00.000+07:002014-05-04T22:13:50.368+07:00Shared Pool Memory Structure
Oracle Shared Pool เป็นคุณสมบัติสำคัญที่ช่วยในการแชร์ให้ User กลุ่มใหญ่สามารถใช้ Object ที่ซับซ้อนร่วมกันได้ ในอดีตบ่อยครั้งที่ DBA ใช้เวลาส่วนใหญ่เรียนรู้เกี่ยวกับการจัดการหน่วยความจำ Shared Pool และตั้งค่าตลอดจนปรับแต่ง (Tune) การใช้งาน Shared Pool ต่อมาจึงมีคุณสมบัติที่เรียกว่า Automatic Shared Memory Management (ASMM) ที่เริ่มมีใน Oracle 10gR1 ซึ่งน่าจะสามารถช่วยในการแก้ปัญหานี้ Tanakorn Tavornsasnavonghttp://www.blogger.com/profile/01131478829974162687noreply@blogger.com1