-
-
DevelopPlus.net
ขายสคริปต์เว็บไซต์ลงประกาศสินค้า
-
SiamACT.com
เวปไซต์ที่ให้คุณโฆษณาตนเอง
ขายสคริปต์เว็บไซต์ลงประกาศสินค้า
หากว่าคุณต้องการมีเว็บไซต์ลงประกาศสินค้าเป็นของตนเอง
แต่ว่าคุณไม่มความรู้เรื่องการติดตั้งเว็บ ไม่อยากเช่า hosting
โปรดติดต่อมาหาเรา ทางเราจะให้บริการปัญหาเหล่านี้กับท่าน
เวปไซต์ที่ให้คุณโฆษณาตนเอง
SiamACT.com เป็นเวปไซต์ที่ให้คุณสามารถโปรโมท หรือโฆษณาตนเองได้ตามต้องการ
หากคุณมีวิดีโอเกี่ยวกับตัวคุณอยู่แล้วใน YouTube.com และต้องการโฆษณาให้เป็นที่แพร่หลาย
SiamACT.com จะเป็นสื่อกลางของวิดีโอคลิบเหล่านี้
-
-
-
subject:Transaction คืออะไร ??
content:Transactions คือ หน่วยการทำงานโดยมีหลักการสำคัญที่ว่า หน่วยของการทำงานจะสำเร็จได้ก็ต่อเมื่อ
ทุกคำสั่งที่อยู่ในหน่วยการทำงานนั้นๆต้องสำเร็จทั้งหมด แต่ถ้ามีคำสั่งใดคำสั่งหนึ่งในหน่วยของการทำงาน
ไม่สามารถทำงานได้อย่างถูกต้องแล้ว ทุกคำสั่งที่ทำไปแล้วจะต้องคืนค่าที่เปลี่ยนไปนั้น ให้กลับไปอยู่ใน
สภาพเดิม คือสภาพก่อนที่หน่วยของการทำงานจะเริ่มขึ้นทั้งหมด
โดยตามหลักการทำงานของ Transactions จะสามารถรับประกันได้ว่า การทำงานจะสามารถกระทำได้สำเร็จ
ครบถ้วน หรือไม่ได้ทำการใดๆเลย เพราะจะไม่มีกรณีที่ทำงานค้างอยู่ครึ่งๆกลางๆ
และในระหว่างการทำงานของ Transactions หนึ่งๆนั้น จะไม่มี Transactions อื่นสามารถเข้ามาแก้ไข
ข้อมูลที่กำลังดำเนินการอยู่ได้ ทั้งนี้เพราะมีการ Lock ข้อมูลเอาไว้
-
subject:องค์ประกอบของ Transactions มี 4 ประการ ( ACID ) ได้แก่
content:> Atomicity คือความเป็นอันหนึ่งอันเดียวกัน โดยทุกคำสั่งใน Transaction หนึ่ง
จะต้องทำงานได้สำเร็จทั้งหมด ถ้าไม่อย่างนั้นก็จะต้องมีการคืนสภาพกลับไปยังจุดเริ่มต้น
เหมือนไม่มีการดำเนินการใดๆเกิดขึ้นเลย
> Consistency คือจะมีความถูกต้องของข้อมูลเสมอ ( เพราะถ้าคำสั่งใน Transaction เกิด
ความผิดพลาดขึ้น ก็จะมีการคืนสภาพกลับไปยังจุดเริ่มต้น )
> Isolation คือมีความเป็นส่วนตัว เพราะในแต่ละ Transaction จะถูกแยกออกจากกันอย่างสิ้นเชิง
ทำให้การทำงานใน Transaction หนึ่งจะไม่ไปรบกวนอีก Transaction หนึ่ง
> Durability คือมีความทนทาน
-
subject:ประเภทของ Transaction
content:Transaction มี 3 ประเภท ได้แก่
> Explicit Transactions
> Implicit Transactions
> Automatic Transactions
-
subject:Explicit Transactions
content:เป็น Transactions ที่สามารถกระทำได้โดยการใช้คำสั่งจาก sql โดยประกอบด้วย คำสั่งดังนี้
1.) BEGIN TRANSACTION transaction_name [ WITH MARK ["description"] ]
เป็นการกำหนดให้รู้ว่าจะเริ่มต้น Transactions ที่ตรงจุดนี้
2.) COMMIT TRANSACTION transaction_name
เป็นการกำหนดให้รู้ว่าสิ้นสุดการทำงานของ Transactions ที่ตรงจุดนี้
โดยในกรณีที่มี Transactions ซ้อน Transactions แล้ว
ถ้ามีการ commit transaction ที่อยู่ภายใน ก็จะเป็นเพียงการบอกถึงความสำเร็จ
ของการทำงานของ transaction นั้นๆเท่านั้นจะยังไม่มีการบันทึกข้อมูลจริง
เพราะการบันทึกข้อมูลจริงจะมีได้ก็ต่อเมื่อมีการ commit transaction ของ
transaction ตัวนอกสุด
3.) COMMIT WORK
เป็นการกำหนดให้รู้ว่าสิ้นสุดการทำงานของ Transactions ที่ตรงจุดนี้
4.) ROLLBACK TRANSACTION { transaction_name | savepoint_name }
เป็นการกำหนดให้ rollback กลับไปยัง savepoint_name ที่กำหนด
หรือ rollback การทำงานของ transaction_name ที่กำหนดทั้งหมด
5.) ROLLBACK WORK
เป็นการกำหนดให้ rollback การทำงานของ Transaction ทั้งหมด
6.) SAVE TRANSACTION savepoint_name
เป็นการ save จุดของ Transactions เพื่อที่จะสามารถให้ rollback กลับมายังจุดนี้ได้
และหลังจากนั้นการดำเนินงานก็จะยังคงดำเนินต่อไป จากจุดเดิม
โดยสามารถใช้ชื่อ savepoint_name เหมือนเดิมได้หลายครั้ง
แต่เมื่อมีการ rollback กลับมาที่ savepoint_name นี้ ก็จะอ้างอิงไปถึง
savepoint_name ล่าสุดนี้
*.) คำสั่งที่ไม่สามารถใช้งานได้ใน Emplicit Transactions ได้แก่
ALTER DATABASE, DROP DATABASE, RECOFIGURE, BACKUP LOG, RESOTRE DATABASE,
CREATE DATABASE, RESTORE LOG, UPDATE STATISTICS, DISK INIT, LOAD DATABASE,
LOAD TRANSACTION, DUMP TRANSACTION
-
subject:Implicit Transactions
content:เป็น Transactions ที่สามารถทำได้โดยการกำหนด mode ของการทำงานในแต่ละ session
ที่ต้องการให้เป็น ON และยกเลิกการทำงานโดยการกำหนดให้เป็น OFF
( โดยคำสั่ง SET IMPLICiT_TRANSACTIONS { ON | OFF } )
โดยถ้ากำหนด mode ของการทำงานให้เป็น on แล้วพบคำสั่งต่อไปนี้
ระบบจะทำการสร้าง Transactions ให้โดยอัตโนมัติ ได้แก่
ALTER TABLE, FETCH, REVOKE, CREATE, GRANT, SELECT, DELETE, INSERT,
TRUNCATE TABLE, DROP, OPEN, UPDATE
หลักการทำงานของ Implicit Transactions คือ
เมื่ออยู่ใน mode การทำงานของ implicit transactions แล้ว
การเริ่มต้นของการทำงานของ Transactions นี้ไม่ต้องเริ่มที่คำสั่ง BEGIN TRANSACTION
เพราะระบบจะรู้เองว่าจะเริ่มต้น Transactions เมื่อพบ keyword ข้างต้น ( ALTER TABLE, FETCH, ..., UPDATE )
แต่การ COMMIT TRANSACTION หรือ ROLLBACK TRANSACTION ยังคงต้องมีอยู่
เพื่อบอกให้ระบบรู้ถึงการสิ้นสุดในการทำงานของแต่ละ Transaction
โดยปกติถ้ามีการใช้คำสั่ง BEGIN TRANSACTION และเสร็จสิ้นการทำงานกับ Database แล้ว
ถ้าไม่มีการ COMMIT TRANSACTION จะทำให้ข้อมูลถูก ROLLBACK โดย อัตโนมัติทันที
ดังนั้นถึงแม้จะกำหนดให้อยู่ใน mode การทำงานของ implicit transactions แล้ว
ก็ยังจะต้องมีการ COMMIT TRANSACTION อยู่ดี
-
subject:Automatic Transactions
content:โดยปกติแล้วทุกๆคำสั่งของ script นั้น แต่ละคำสั่งจะมี Transaction เป็นของตัวเอง คือ 1 คำสั่ง 1 Transaction
ดังนั้นในแต่ละคำสั่งเมื่อทำเสร็จก็จะมีการเขียนลง File Transaction Log แบบคำสั่งต่อคำสั่ง
ทำให้สิ้นเปลือง resource ของระบบ
( สรุปคือถ้ามีการใช้ Explicit Transaction ก็จะทำให้มีการเขียน File Transaction Log ลดน้อยลง )
-
subject:@@TRANCOUNT
syntax:@@TRANCOUNT
content:ใช้คืนค่า จำนวนของ transaction ที่เปิดใช้อยู่
example:BEGIN TRANSACTION tran_outerest
PRINT @@TRANCOUNT
BEGIN TRANSACTION tran_inner_1
SELECT id, firstname, lastname, sex FROM person
UPDATE person SET firstname = 'Mr. ' + firstname WHERE set = 1
UPDATE person SET firstname = 'Mrs. ' + firstname WHERE set = 2
COMMIT TRANSACTION tran_inner_1
PRINT @@TRANCOUNT
BEGIN TRANSACTION tran_inner_2
INSERT INTO person ( firstname, lastname, sex ) VALUES ( 'function', 'in.th', 1 )
IF @@ERROR > 0
BEGIN
ROLLBACK TRANSACTION tran_inner_2
END
COMMIT TRANSACTION tran_inner_2
PRINT @@TRANCOUNT
COMMIT TRANSACTION tran_outerest
PRINT @@TRANCOUNT
-
subject:SET XACT_ABORT
syntax:SET XACT_ABORT { ON | OFF }
content:เป็นการกำหนดว่า เมื่อมี run time error เกิดขึ้นภายใน Transaction
ต้องการให้ระบบหยุดการทำงานของ Transaction และ RollBack ข้อมูล
กลับไปทั้งหมด ใช่หรือไม่
example:SET XACT_ABORT ON
BEGIN TRANSACTION
SELECT id, firstname, lastname, sex FROM person
INSERT INTO person ( firstname, lastname, sex ) VALUES ( 'function', 'in.th', 1 )
IF @@ERROR > 0
BEGIN
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
-
subject:ตัวอย่างของ Explicit Transactions
example:BEGIN TRANSACTION
SELECT id, firstname, lastname, sex FROM person
INSERT INTO person ( firstname, lastname, sex ) VALUES ( 'function', 'in.th', 1 )
IF @@ERROR > 0
BEGIN
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
-
subject:ตัวอย่างของ Explicit Transactions ( 2 )
example:BEING TRANSACTION
DELETE person WHERE id = 101
SAVE TRANSACTION point_1
INSERT INTO person ( firstname, lastname, sex ) VALUES ( 'function', 'in.th', 1 )
IF @@ERROR > 0
BEGIN
ROLLBACK TRANSACTION point_1
END
UPDATE person SET firstname = "Mr. " + firstname WHERE sex = 1
IF @@ERROR > 0
BEGIN
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
-
subject:ตัวอย่างของ Implicit Transactions
example:SET IMPLICIT_TRANSACTION ON
SELECT id, firstname, lastname, sex FROM person
INSERT INTO person ( firstname, lastname, sex ) VALUES ( 'function', 'in.th', 1 )
COMMIT TRANSACTION
DELETE person WHERE id = 101
IF @@ERROR > 0
BEGIN
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
SET IMPLICIT_TRANSACTION OFF