ผู้ใช้หลายรายที่เข้าถึงฐานข้อมูล VFP App / dbase ผ่านเครือข่าย - ปัญหาที่ช้า

ขณะนี้ฉันกำลังใช้งานแอปพลิเคชัน VFP9 ที่ใช้ฐานข้อมูลซึ่งโดยพื้นฐานแล้วเป็นโฟลเดอร์ของไฟล์ DBF, FPT และ CDX หลายไฟล์

ขณะนี้ฐานข้อมูลนี้ถูกแชร์บนเครือข่าย (เครือข่าย 1GB/สวิตช์/พีซี) สำหรับผู้ใช้มากกว่า 50 รายในการเข้าถึง

ขณะนี้เราได้รับข้อความ "พยายามล็อค" ฉันได้ตรวจสอบฮาร์ดแวร์แล้วโดยไม่มีปัญหาหรือพบปัญหาคอขวด นอกจากนี้ในบางครั้งมีผู้คนมากกว่า 50 คนสามารถเข้าถึงหรือเขียนไปยังไฟล์ที่ต้องการได้ภายในเวลาไม่กี่วินาที

ฉันพบปัญหาที่อาจเกิดขึ้นกับ "Oplocks" ในพื้นที่ Lanman ผ่านทาง Google แต่ดูเหมือนว่าจะไม่มีอยู่ใน Windows 2008 R2 / Windows 7 ยังได้อ่านเกี่ยวกับ SMB โดยทั่วไปแล้ว แต่ฉันก็มาถึงจุดสิ้นสุดแล้ว

ไม่รู้จะดูอะไรต่อไป? บางทีฉันกำลังทดสอบขีดจำกัดของสิ่งที่ระบบ VFP/Dbase สามารถทำได้

ใครสามารถช่วยได้บ้าง?

ขอบคุณไรอัน


person Ryan    schedule 15.07.2013    source แหล่งที่มา
comment
ย้ายแอป/ฐานข้อมูลของคุณไปที่ Citrix หรือ Terminal Server   -  person sskoko    schedule 26.09.2013


คำตอบ (2)


อาจมีสิ่งต่างๆ มากมายและอาจเป็นเรื่องปกติ คุณมีซอร์สโค้ดสำหรับแอปหรือไม่

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

ข้อความพยายามล็อคหมายถึงมีบุคคลมากกว่าหนึ่งคนที่พยายามเข้าถึงบันทึกเดียวกัน (หรือไฟล์หากเป็นการล็อคแบบหยาบ)

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

ขีดจำกัดทางเทคนิคสำหรับ VFP คือ (ฉันคิดว่า 2 GB ต่อตารางเดียว) และในทางปฏิบัติแล้วจะช้าเมื่อมีบันทึกนับล้านรายการ (ลักษณะทั่วไปขนาดใหญ่) การจัดทำดัชนีที่ดีจะช่วยได้เมื่อตารางมีขนาดใหญ่

นี่เป็นการขัดข้องเป็นระยะๆ ในระบบ (เช่น เวลาพักเที่ยงและช่วงเย็น) หรือเป็นการโหลดในระบบอย่างต่อเนื่องหรือบ่อยกว่านั้น

หากคุณมีซอร์สโค้ด คุณสามารถทำอะไรได้มากมาย หากคุณไม่มี คุณจำเป็นต้องค้นหาว่า DBF ใดที่ถูกล็อค (พวกเขาจะเป็นอันที่มีบันทึกจำนวนมากในนั้นและอาจมีขนาดไฟล์ใหญ่เช่นกัน เมื่อคุณดูที่ ไดเรกทอรี)

คุณมี VFP เองหรือเป็น EXE ที่คอมไพล์แล้ว?

คุณมีตัวเลือกและสิ่งต่างๆ มากมายที่คุณสามารถทำได้ แต่จำเป็นต้องมีข้อมูลเพิ่มเติม

นิค

person Tin Bum    schedule 15.07.2013
comment
ในกรณีนี้ เรามีไฟล์การตรวจสอบ ดังนั้นไม่ว่าใครจะเข้าถึงพื้นที่ใดของระบบ การดำเนินการใดๆ ก็ตามที่ถูกบันทึกไว้ก็จะถูกบันทึกลงในการตรวจสอบ dbf/fpt เรามีระบบเพื่อให้ไฟล์การตรวจสอบมีขนาดใหญ่มาก (500mb) แต่จะถูกเก็บถาวรอัตโนมัติทุกต้นเดือนเพื่อป้องกันไม่ให้มันไร้สาระ ตัวโปรแกรม VFP นั้นเป็น EXE ที่คอมไพล์แล้วและเข้าถึงได้เสมอไม่ว่าจะใช้เครื่องใดก็ตาม มันเป็นเพียงตำแหน่งของฐานข้อมูลซึ่งโดยปกติจะเข้าถึงได้ผ่านเครือข่าย (เว้นแต่ผู้ใช้บางรายจะ RDP เข้าไปในเครื่องเซิร์ฟเวอร์) - person Ryan; 17.07.2013
comment
ผมคิดว่าอาจจะเคลียร์ไฟล์ Audit บ่อยกว่าทุกเดือน - person Tin Bum; 17.07.2013
comment
ใช้ VFP.EXE เพื่อดูไฟล์ตรวจสอบก่อนและหลังการเก็บถาวรอัตโนมัติ กระบวนการเก็บถาวรจะล้างข้อมูลทั้งหมดหรือบางส่วนออกหรือไม่ - person Tin Bum; 17.07.2013
comment
เหตุผลในการดูไฟล์ด้วย VFP - ในกรณีที่รูทีนการเก็บถาวรที่มีอยู่ของคุณป้องกันไม่ให้ทำงานบ่อยกว่ารายเดือน (เช่น ตามหลักการตั้งชื่อไฟล์ที่จำกัดในตัว) โดยการดูไฟล์เส้นทางการตรวจสอบก่อนและหลังการเก็บถาวร คุณจะสร้างภาพของ กำลังทำอะไรอยู่ วิธีตัดสินใจว่าจะลบบันทึกจำนวนเท่าใด ฯลฯ ดังนั้นหากคุณต้องเขียนรูทีนการเก็บถาวรใหม่อีกครั้ง (โดยไม่มีข้อจำกัดในการตั้งชื่อไฟล์) คุณจะได้รับข้อมูลที่ดีขึ้น - person Tin Bum; 17.07.2013
comment
ขอบคุณสำหรับข้อมูลของคุณจนถึงตอนนี้ การเก็บถาวรมีหลักการตั้งชื่อรายเดือนในตัว กระบวนการเก็บถาวรจะเห็นบันทึกใดๆ ที่ลงวันที่จากเดือนก่อนหน้า และเพียงตัดออกและใส่ลงในไฟล์ตรวจสอบใหม่ล่าสุดที่อ่านได้เฉพาะสำหรับการเข้าถึงของผู้ดูแลระบบเท่านั้น ฉันสงสัยว่าคุณพูดถูกกับขนาดไฟล์ที่เป็นปัญหา แม้ว่าผู้ใช้ไม่ได้กลับมาหาฉันเกี่ยวกับปัญหานี้อีก ฉันสงสัยว่าไฟล์ที่เล็กลงจะช่วยบรรเทาปัญหาได้หรือไม่ แต่ไม่สามารถแก้ปัญหาโดยรวมได้ อืม - person Ryan; 17.07.2013
comment
ฉันคิดว่าคุณน่าจะมาถูกทางแล้วกับไฟล์การตรวจสอบ หากทุกแง่มุมของซอฟต์แวร์เขียนถึงมัน มันก็ถือเป็นไฟล์ที่ยุ่งที่สุดในระบบของคุณ และอย่างที่คุณบอก มันเป็นไฟล์ที่ใหญ่ที่สุดไฟล์หนึ่งด้วย เมื่อเพิ่มบันทึก (ซึ่งจะต้องเกิดขึ้นบ่อยครั้งกับไฟล์การตรวจสอบ) VFP จะใช้เวลานานกว่าเมื่อไฟล์มีขนาดใหญ่ขึ้น - จากประสบการณ์ของฉัน (และตามตรรกะ) - person Tin Bum; 18.07.2013
comment
ขออภัยฉันกด Enter เพื่อขึ้นบรรทัดใหม่ ... และโพสต์สิ่งที่ยังสร้างไม่เสร็จ - person Tin Bum; 18.07.2013
comment
ในการทำงานปกติเมื่อไฟล์มีขนาดเล็ก กระบวนการ Lock Header, Add Record, Write Data, Unlock จะเกิดขึ้นอย่างรวดเร็ว - มิลลิวินาที เมื่อไฟล์ใหญ่ขึ้นจะใช้เวลานานกว่า และนานพอสำหรับข้อความที่ระบุว่า Attempting to Lock ปรากฏขึ้น ข้อความ VFP ประเภทเหล่านั้นใช้เวลาไม่กี่มิลลิวินาทีในการสร้างและแสดงผล ซึ่งยาวอย่างน่าประหลาดใจ - ยาวกว่าการล็อค ... ปลดล็อคในไฟล์ขนาดเล็กมาก - person Tin Bum; 18.07.2013
comment
ขอบคุณสำหรับคำแนะนำนิค ฉันคิดว่าเราจะต้องไปตามเส้นทางของการอนุญาตให้มีการเก็บถาวรเป็นรายสัปดาห์แทนที่จะเป็นรายเดือน หรือแม้กระทั่งตั้งค่าระบบให้ทำงานบนพื้นฐานของผู้ใช้ที่มีสิทธิ์เข้าถึงได้ฟรีว่าพวกเขาต้องการเก็บถาวรบ่อยแค่ไหน ไฟล์. ขอบคุณสำหรับความช่วยเหลือและคำแนะนำเกี่ยวกับเรื่องนี้! จะอัปเดตข่าวสารต่างๆ หลังจากมีการเปลี่ยนแปลง (ปล. ฉันพบว่าต้องใช้ SHIFT+ENTER เพื่อขึ้นบรรทัดใหม่เมื่อพิมพ์ในช่องแสดงความคิดเห็น แต่ยังคงจัดรูปแบบโดยไม่มีการขึ้นบรรทัดใหม่) - person Ryan; 18.07.2013

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

S:\SomeShare\YourVFPApp.exe

หากเป็นเช่นนั้น ก็สามารถทำลายประสิทธิภาพได้อย่างมาก กำลังดึงแอปพลิเคชันลงมาผ่านเครือข่ายสำหรับผู้ใช้ทุกคนที่ดูดการรับส่งข้อมูล สิ่งที่ฉันได้ทำกับลูกค้ามีดังต่อไปนี้ เลือกจุดบนไดรฟ์ C: ภายในของเครื่อง... เช่น: C:\NetworkApps และคัดลอก YourVFPApp.exe ลงในโฟลเดอร์ C:\NetworkApps นี้

จากนั้น สร้างทางลัดใหม่ที่ชี้ไปที่ C:\NetworkApps\YourVFPApp.exe แล้วบันทึก

ถัดไป แก้ไขทางลัด แต่คราวนี้ เปลี่ยนโฟลเดอร์ "Start In" ไปเป็นตำแหน่งเดิม เช่น "S:\SomeShare\" บันทึกการเปลี่ยนแปลงและเรียกใช้ทางลัดเวอร์ชันนี้

โดยพื้นฐานแล้วสิ่งนี้กำลังทำอยู่คือการเรียกใช้แอปในเครื่อง แต่โดยการเริ่มต้นในตำแหน่งสุดท้ายเดียวกันกับที่มีการแชร์ (โดยเฉพาะอย่างยิ่งหากมีการใช้เส้นทางฮาร์ดโค้ดและน่ากลัวในการจัดการ) สิ่งนี้จะป้องกันความต้องการของผู้ใช้ทุกคนในการรับแอปพลิเคชันผ่านเครือข่าย และเพียงจัดการกับตารางและการรับส่งข้อมูลจริง

ใช่ นี่อาจเป็นเรื่องที่น่าปวดหัวเล็กน้อยเมื่อมีการอัปเดตแอปพลิเคชัน แต่เพื่อสิ่งนั้น ฉันจึงได้เขียนแอป VFP ธรรมดาอีกแอปหนึ่งที่มองไปยังไดรฟ์ในเครื่อง โดยเปรียบเทียบ exe กับ "เวอร์ชันล่าสุด" บนเครือข่าย แบ่งปัน. หากเซิร์ฟเวอร์เวอร์ชันใหม่กว่า ให้คัดลอกสิ่งนั้นในเครื่อง จากนั้นเปิดใช้งานโดยเริ่มจากโฟลเดอร์ "S:\SomeShare\" ที่คาดไว้

สำหรับการล็อค หากคุณกำลังทำการล็อคแบบ TABLE เทียบกับการล็อคแบบ RECORD คุณจะเห็นปัญหาความล่าช้าในการรอข้อความล็อคอย่างชัดเจน แต่การล้างปัญหาคอขวดของเครือข่ายที่เป็นไปได้ที่ส่วนท้ายของแอปพลิเคชันอาจช่วยบรรเทาปัญหาให้คุณได้

person DRapp    schedule 17.07.2013
comment
สวัสดี ใช่ EXE เข้าถึงได้จากภายในเครื่องเสมอ มันเป็นเพียงไฟล์ฐานข้อมูลที่ปกติเข้าถึงได้ผ่านการแชร์เครือข่าย (เว้นแต่ผู้ใช้บางรายจะมีสิทธิ์เข้าถึง RDP ไปยังเซิร์ฟเวอร์โดยตรงก่อน ดังนั้นทุกอย่างจึงยังคงอยู่ในเครื่อง) - person Ryan; 17.07.2013
comment
เราเรียกใช้มันเป็นบันทึกที่ถูกล็อคและไม่ใช่ตารางที่ถูกล็อคด้วย ดังที่บุคคลกล่าวไว้ข้างต้น ส่วนหนึ่งอาจเป็นเพราะขนาดไฟล์ (เวลาเพิ่มขึ้น 200mb ที่ใช้ในการอ่านและเขียนลงในตาราง) หรืออาจเป็นเพราะผู้ใช้มากกว่า 50 ราย (และเพิ่มมากขึ้น) ที่อาจเข้าถึงและเขียนลงในตาราง ในเวลาใดก็ได้ - person Ryan; 17.07.2013