I/O แบบอะซิงโครนัสดิสก์ปรากฏเป็นแบบซิงโครนัสใน Windows NT, Windows 2000 และ Windows XP

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 156932 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

แฟ้ม I/O บน Microsoft Windows NT, Windows 2000, Windows XP อาจเป็นแบบอะซิงโครนัส หรือแบบซิงโครนัส ลักษณะการทำงานเริ่มต้นสำหรับ I/O เป็นแบบซิงโครนัส: ฟังก์ชันการ I/O ถูกเรียก และส่งกลับเมื่อ I/O ทำงานเสร็จสมบูรณ์ I/O แบบอะซิงโครนัส กัน ทำให้ฟังก์ชันการ I/O เพื่อย้อนกลับการดำเนินการกลับไปยังผู้เรียกทันที แต่ I/O จะไม่ถือว่าการทำให้เสร็จสมบูรณ์ได้จนกว่าถึงเวลาในอนาคต ระบบปฏิบัติการแจ้งให้ทราบว่าผู้เรียกเมื่อ I/O ทำงานเสร็จสมบูรณ์ อีกวิธีหนึ่งคือ ผู้เรียกสามารถตรวจสอบสถานะของการดำเนินการ I/O ที่ค้างชำระ โดยใช้บริการของระบบปฏิบัติการ

ข้อดีของ I/O แบบอะซิงโครนัสคือ ว่า ผู้เรียกมีเวลาในการดำเนินการอื่น ๆ ทำงาน หรือออกการร้องขอในขณะที่กำลังจะเสร็จสิ้นการดำเนินการ I/O ที่ คำว่า Overlapped I/O มักใช้ สำหรับ I/O แบบอะซิงโครนัส และ เหลื่อมไม่ใช่ I/O สำหรับ I/O แบบซิงโครนัส บทความนี้ใช้เงื่อนไข Asynchronous และ ซิงโครนัสสำหรับการดำเนินการ I/O ภายใต้ Windows NT บทความนี้อนุมาน ผู้อ่านมีฟังก์ชัน I/O ของแฟ้มเช่น CreateFile คุ้นเคยแน่นอน ReadFile, WriteFile

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

ฟังก์ชันต่าง ๆ เกี่ยวข้องกับ I/O แบบอะซิงโครนัส และแบบซิงโครนัส บทความนี้ใช้ ReadFile และ WriteFile เป็นตัวอย่าง ทางเลือกที่ดีจะเป็น ReadFileEx และ WriteFileEx ถึงแม้ว่าบทความนี้กล่าวเฉพาะดิสก์ I/O โดยเฉพาะ หลักจำนวนมากสามารถใช้กับ I/O เช่น I/O พอร์ตอนุกรมหรือ I/O เครือข่ายชนิดอื่น ๆ

หมายเหตุ: เนื่องจาก Windows 95 ไม่สนับสนุน I/O แบบอะซิงโครนัสบนอุปกรณ์ดิสก์ (ถึงแม้ว่าอยู่บนอุปกรณ์ I/O ชนิดอื่น ๆ) ลักษณะการทำงานไม่ได้ครอบคลุมในบทความนี้

ข้อมูลเพิ่มเติม

ตั้งค่าของ I/O แบบอะซิงโครนัส

ต้องระบุค่าสถานะ FILE_FLAG_OVERLAPPED ใน CreateFile เมื่อมีเปิดแฟ้ม ค่าสถานะนี้ช่วยให้การดำเนินการ i/o ของแฟ้มที่จะดำเนินการแบบอะซิงโครนัส นี่เป็นตัวอย่าง:
   HANDLE hFile;

   hFile = CreateFile(szFileName,
                      GENERIC_READ,
                      0,
                      NULL,
                      OPEN_EXISTING,
                      FILE_FLAG_NORMAL | FILE_FLAG_OVERLAPPED,
                      NULL);

   if (hFile == INVALID_HANDLE_VALUE)
      ErrorOpeningFile();
				
ความระมัดระวังในการเขียนโค้ดสำหรับ I/O แบบอะซิงโครนัสเนื่องจากระบบการจอง ขวาเพื่อทำการดำเนินการแบบซิงโครนัสถ้าจำเป็นต้องใช้ในการ ดังนั้น จึงดีที่สุดถ้าคุณเขียนโปรแกรมได้อย่างถูกต้องจัดการกับการดำเนินการ I/O ที่อาจจะทำให้เสร็จสมบูรณ์พร้อมกัน หรือแบบอะซิงโครนัส ตัวอย่างรหัสแสดงนี้พิจารณาด้วย

มีหลายอย่างที่โปรแกรมสามารถทำได้ขณะกำลังรอการแบบอะซิงโครนัส การดำเนินการให้เสร็จสมบูรณ์ เช่นจัดคิวการดำเนินงานเพิ่มเติม หรือทำ การทำงานเบื้องหลัง ตัวอย่างเช่น รหัสต่อไปนี้อย่างถูกต้องจัดการ คาบเกี่ยวกัน และ เหลื่อมไม่สมบูรณ์ของการดำเนินการอ่าน ได้บ้าง ไม่มีอะไรมากกว่ารอ I/O ค้างชำระเพื่อให้เสร็จสมบูรณ์:
   if (!ReadFile(hFile,
                 pDataBuf,
                 dwSizeOfBuffer,
                 &NumberOfBytesRead,
                 &osReadOperation )
   {
      if (GetLastError() != ERROR_IO_PENDING)
      {
         // Some other error occurred while reading the file.
         ErrorReadingFile();
         ExitProcess(0);
      }
      else
         // Operation has been queued and
         // will complete in the future.
         fOverlapped = TRUE;
   }
   else
      // Operation has completed immediately.
      fOverlapped = FALSE;

   if (fOverlapped)
   {
      // Wait for the operation to complete before continuing.
      // You could do some background work if you wanted to.
      if (GetOverlappedResult( hFile,
                               &osReadOperation,
                               &NumberOfBytesTransferred,
                               TRUE))
         ReadHasCompleted(NumberOfBytesTransferred);
      else
         // Operation has completed, but it failed.
         ErrorReadingFile();
   }
   else
      ReadHasCompleted(NumberOfBytesRead);
				
หมายเหตุว่า & NumberOfBytesRead ที่ส่งผ่านไปยัง ReadFile จะแตกต่างจาก & NumberOfBytesTransferred ถูกส่งผ่านไปยัง GetOverlappedResult ถ้าผิดการดำเนินงาน การได้แบบอะซิงโครนัส จาก นั้นใช้ GetOverlappedResult เพื่อตรวจสอบ จำนวนไบต์ที่ถูกโอนย้ายในการดำเนินการหลังจากที่มีจริง ทำให้เสร็จสมบูรณ์ การ & NumberOfBytesRead ที่ส่งผ่านไปยัง ReadFile ถูกออก

ถ้า กัน การดำเนินงานเสร็จสมบูรณ์ทันที จากนั้น & NumberOfBytesRead ที่ส่งผ่านไปยัง ReadFile มีผลบังคับใช้สำหรับจำนวนของไบต์ที่อ่าน ในกรณีนี้ ละเว้นโครงสร้าง OVERLAPPED ส่งผ่านไปยัง ReadFile ไม่ใช้กับ GetOverlappedResult หรือ WaitForSingleObject

Caveat อื่น มีการดำเนินการแบบอะซิงโครนัสไม่ว่า คุณต้องไม่ใช้โครงสร้างที่มี OVERLAPPED จนกว่าการดำเนินการที่ค้างอยู่เสร็จเรียบร้อยแล้ว ในที่อื่น ๆ คำ ถ้าคุณมีการดำเนินการ I/O คงค้างสาม คุณต้องใช้โครงสร้าง OVERLAPPED สาม ถ้าคุณนำโครงสร้างที่มี OVERLAPPED คุณจะได้รับผลลัพธ์ที่ไม่คาดคิดในการดำเนินการ I/O และคุณอาจพบความเสียหายของข้อมูล เตรียมใช้นอกจากนี้ ก่อนที่คุณสามารถใช้โครงสร้างที่มี OVERLAPPED เป็นครั้งแรก หรือ ก่อนที่คุณใช้อีกครั้งได้หลังจากการดำเนินงานก่อนหน้านี้เสร็จเรียบร้อยแล้ว คุณต้องได้อย่างถูกต้องงานนั้นเพื่อให้ไม่มีข้อมูลอยู่เหนือด้านซ้ายมีผลต่อการดำเนินการใหม่

ชนิดเดียวกันของข้อจำกัดที่ใช้กับบัฟเฟอร์ข้อมูลที่ใช้ในการ การดำเนินการ บัฟเฟอร์ข้อมูลต้องไม่สามารถอ่าน หรือเขียนจนกว่าจะมีการ การดำเนินการ I/O ที่สอดคล้องกันเสร็จสมบูรณ์แล้ว การอ่าน หรือเขียนบัฟเฟอร์ อาจทำให้เกิดข้อผิดพลาดและข้อมูลเสียหาย

แบบอะซิงโครนัส I/O ยังคงปรากฏเป็น Synchronous

ถ้าคุณตามคำแนะนำไว้ก่อนหน้านี้ในบทความนี้ อย่างไรก็ตาม งาน I/O ทั้งหมดของคุณโดยทั่วไปจะยังคงทำพร้อมกันในใบสั่งที่นำออกใช้ และส่งกลับไม่มีการดำเนินการ ReadFile ค่า FALSE กับ GetLastError() กลับ ERROR_IO_PENDING ซึ่งหมายความว่า คุณจะไม่มีเวลาสำหรับงานพื้นหลังใด ๆ เหตุใดจึงไม่นี้เกิดขึ้นได้อย่างไร

มีหลายสาเหตุที่ทำให้เหตุการดำเนินการ I/O เสร็จพร้อมกัน ถึงแม้ว่าคุณมีรหัสสำหรับการดำเนินการแบบอะซิงโครนัส:

การบีบอัด

Obstruction หนึ่งการดำเนินการแบบอะซิงโครนัสคือ การบีบอัด NTFS แฟ้ม โปรแกรมควบคุมระบบจะไม่เข้าถึงแฟ้มที่บีบอัดแบบอะซิงโครนัส แทนทั้งหมด การดำเนินงานที่เพิ่งจะทำแบบซิงโครนัส นี้ไม่สามารถใช้กับแฟ้มที่อยู่ บีบอัด ด้วยโปรแกรมอรรถประโยชน์ที่คล้ายคลึงกับการบีบอัดหรือ PKZIP

การเข้ารหัสลับแบบ NTFS

คล้ายกับการบีบอัด การเข้ารหัสลับแฟ้มโปรแกรมควบคุมระบบการแปลง I/O แบบอะซิงโครนัสกับแบบซิงโครนัสที่ทำ ถ้าแฟ้มจะถูกถอดรหัสลับ การร้องขอ I/O จะเป็นแบบอะซิงโครนัส

การขยายแฟ้ม

อีกเหตุผลที่ว่า การดำเนินการ I/O เสร็จสมบูรณ์พร้อมกันมีการดำเนินงานด้วยตนเอง ใน Windows NT ใด ๆ เขียนการดำเนินการแฟ้มที่ขยายความยาวของจะเป็นแบบซิงโครนัส

หมายเหตุ: โปรแกรมประยุกต์สามารถทำการดำเนินการดังกล่าวก่อนหน้านี้ในการเขียนแบบอะซิงโครนัส โดยการเปลี่ยนความยาวของข้อมูลถูกต้องของแฟ้มโดยใช้ฟังก์ชัน SetFileValidData และ WriteFile เป็นที่นำออกใช้แล้ว ได้

ใช้ SetFileValidData (ซึ่งพร้อมใช้งานบน Windows XP และรุ่นที่ใหม่กว่า), โปรแกรมประยุกต์สามารถได้อย่างมีประสิทธิภาพขยายแฟ้ม โดยไม่มีผลต่อการมีผลกระทบต่อประสิทธิภาพสำหรับศูนย์ไส้เหล่านั้น

เนื่องจากไม่มีระบบแฟ้ม NTFS ศูนย์เติมข้อมูลที่ มีความยาวข้อมูลที่ถูกต้อง (VDL) ที่ถูกกำหนด โดย SetFileValidData ฟังก์ชันนี้มีความเกี่ยวข้องด้านความปลอดภัยที่แฟ้มอาจถูกกำหนดให้คลัสเตอร์ที่มีช่องว่างก่อนหน้านี้ โดยแฟ้มอื่น ๆ ดังนั้น SetFileValidData ต้องให้ผู้เรียกได้ SeManageVolumePrivilege ใหม่ที่เปิดใช้งาน (โดยค่าเริ่มต้น ซึ่งมีกำหนดเฉพาะผู้ดูแล) Microsoft ขอแนะนำว่า ISVs ควรพิจารณาอย่างรอบคอบถึงผลกระทบของการใช้ฟังก์ชันนี้

แคช

โปรแกรมควบคุม I/O ส่วนใหญ่ (ดิสก์ สื่อสาร และอื่น ๆ) มีกรณีรหัสพิเศษที่ ถ้าการร้องขอ I/O จะประสบความสำเร็จ "ทันที" การดำเนินงานจะเสร็จสมบูรณ์ และฟังก์ชัน ReadFile หรือ WriteFile จะส่งกลับ TRUE ด้วยวิธีการทั้งหมด ชนิดของการดำเนินงานเหล่านี้ปรากฏเป็นแบบซิงโครนัส สำหรับดิสก์ อุปกรณ์ ทั่วไป การร้องขอ I/O จะประสบความสำเร็จ "ทันที" เมื่อข้อมูลจะถูกเก็บไว้ในหน่วยความจำได้

ข้อมูลนี้ไม่ได้อยู่ในแคช

ชุดรูปแบบแคชสามารถทำงานกับคุณ อย่างไรก็ตาม ถ้าไม่มีข้อมูลในการ แคช แค Windows NT จะดำเนินการภายในโดยใช้แมปแฟ้ม ตัวจัดการหน่วยความจำใน Windows NT ไม่มีเพจที่มีแบบอะซิงโครนัส กลไกข้อบกพร่องในการจัดการการแม็ปแฟ้มที่ใช้ โดยตัวจัดการการแคช ที่ ตัวจัดการการแคชอย่างไรก็ตาม สามารถ ตรวจว่า เพจที่อยู่ในหน่วยความจำ ดังนั้นถ้าคุณออกแบบอ่านแคชการแบบอะซิงโครนัส และหน้าไม่ได้อยู่ในหน่วยความจำ โปรแกรมควบคุมระบบแฟ้มที่ถือว่า คุณไม่ต้องการให้เธรดของคุณถูกบล็อค และการร้องขอจะถูกจัดการ โดยจำกัดกลุ่มของเธรดของผู้ปฏิบัติงานได้ ตัวควบคุมจะถูกส่งกลับไปยังโปรแกรมของคุณหลังจากการเรียก ReadFile ของคุณด้วยการอ่านยังคงค้างอยู่

ใช้สำหรับตัวเลขขนาดเล็กของการร้องขอ ไม่มีปัญหาแต่เนื่อง จากกลุ่มของเธรดของผู้ปฏิบัติงานมีจำกัด (ที่สามในระบบ 16MB), มีจะยังคงสามารถจัดเพียงไม่กี่คำขอคิวไปยังโปรแกรมควบคุมดิสก์ ณเวลาระบุ ถ้าคุณออกจำนวนมากดำเนินการ I/O สำหรับข้อมูลที่ไม่ได้อยู่ในแคช ตัวจัดการการแคชและตัวจัดการหน่วยความจำกลายเป็นเข้ม และคำขอของคุณจะทำแบบซิงโครนัส

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

ไม่ได้ใช้การแคช

ค่าสถานะ FILE_FLAG_NO_BUFFERING มีลักษณะพิเศษที่สุดในการทำงานของการ ระบบแฟ้มสำหรับการดำเนินการแบบอะซิงโครนัส นี่คือวิธีดีที่สุดในการรับประกัน ที่ร้องขอ I/O จะจริงแบบอะซิงโครนัส จะสั่งให้ระบบแฟ้ม เมื่อต้องการใช้ไม่ มีแคทำเลยกลไก

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

ผลการทดสอบที่แท้จริง World

ต่อไปนี้คือ ผลลัพธ์การทดสอบบางอย่างจากตัวอย่างรหัส ระดับของการ ตัวเลขไม่ใช่สิ่งสำคัญที่นี่ และจากคอมพิวเตอร์ ที่แตกต่างกันไป แต่ ความสัมพันธ์ของตัวเลขนำมาเปรียบเทียบกัน illuminates ผลทั่วไปของค่าสถานะประสิทธิภาพการทำงาน

คุณคาดว่าจะเห็นผลลัพธ์ที่คล้ายกับต่อไปนี้:
  • ทดสอบ 1
    Asynchronous, unbuffered I/O:  asynchio /f*.dat /n
    
       Operations completed out of the order in which they were requested.
       500 requests queued in 0.224264 seconds.
       500 requests completed in 4.982481 seconds.
    						
    การทดสอบนี้แสดงว่า โปรแกรมดังกล่าวไว้ก่อนหน้านี้ออกการร้องขอ I/O 500 ได้อย่างรวดเร็ว และมีเวลาในการทำงานอื่น ๆ หรือการออกใช้คำขอเพิ่มเติมเป็นจำนวนมาก
  • ทดสอบ 2
    Synchronous, unbuffered I/O: asynchio /f*.dat /s /n
    
       Operations completed in the order issued.
       500 requests queued and completed in 4.495806 seconds.
    						
    การทดสอบนี้แสดงว่า โปรแกรมนี้ใช้ในการ 4.495880 วินาที เรียก ReadFile เพื่อให้เสร็จสมบูรณ์ของการดำเนินการ ในขณะที่การทดสอบ 1 ใช้เพียง 0.224264 วินาทีในการออกใช้คำขอแบบเดียวกัน ในการทดสอบ 2 มีเวลาไม่มี "พิเศษ" เพื่อให้โปรแกรมทำพื้นหลังใด ๆ ทำงาน
  • ทดสอบ 3
    Asynchronous, buffered I/O: asynchio /f*.dat
    
       Operations completed in the order issued.
       500 requests issued and completed in 0.251670 seconds.
    						
    การทดสอบนี้แสดงลักษณะแบบซิงโครนัสของแคช อ่านทั้งหมด ถูกนำออกใช้ และเสร็จสมบูรณ์ในวินาที 0.251670 กล่าว การร้องขอแบบอะซิงโครนัสได้เสร็จสมบูรณ์พร้อมกัน นี้ทดสอบนอกจากนี้ อธิบายเกี่ยวกับประสิทธิภาพการทำงานสูงของตัวจัดการการแคชเมื่อข้อมูลอยู่ใน แค
  • ทดสอบ 4
    Synchronous, buffered I/O: asynchio /f*.dat /s
    
       Operations completed in the order issued.
       500 requests and completed in 0.217011 seconds.
    						
    การทดสอบนี้แสดงผลลัพธ์เหมือนกันเช่นในการทดสอบ 3 โปรดสังเกตว่า แบบซิงโครนัสอ่านจากแคให้เสร็จสมบูรณ์ได้เร็วที่เล็กกว่าแบบอะซิงโครนัสอ่านจากแคช การทดสอบนี้แสดงประสิทธิภาพสูงของตัวจัดการการแคชเมื่อข้อมูลอยู่ในแคช

บทสรุป

คุณสามารถเลือกวิธีการใดจะดีที่สุดเนื่องจากทั้งหมดขึ้นอยู่กับชนิด ขนาด และหมายเลขการดำเนินงานที่โปรแกรมของคุณทำ

การเข้าถึงแฟ้มเริ่มต้นโดยไม่ได้ระบุค่าสถานะใด ๆ พิเศษการ CreateFile มีการดำเนินการแบบซิงโครนัส และแคช

หมายเหตุ: คุณได้รับบางลักษณะแบบอะซิงโครนัสอัตโนมัติในโหมดนี้ได้เนื่องจากโปรแกรมควบคุมระบบแฟ้มไม่ทำนายแบบอะซิงโครนัสอ่านล่วงหน้า และแบบอะซิงโครนัสเกียจเขียนข้อมูลที่ปรับเปลี่ยน ถึงแม้ว่านี้ไม่ทำการแอพลิเคชัน [ASCII 146] s I/O แบบอะซิงโครนัส เป็นกรณีเหมาะสมที่สุดสำหรับแอพลิเคชันอย่างง่ายใหญ่

ถ้า กัน แอพลิเคชันของคุณไม่ธรรมดา คุณอาจจะต้องทำ การรวบรวมสถานะและบางอย่างมีการตรวจสอบประสิทธิภาพการทำงานเพื่อกำหนดวิธีดีที่สุด คล้ายกับการทดสอบที่แสดงไว้ก่อนหน้าในบทความนี้ การรวบรวมสถานะของเวลาที่ใช้ในการ ฟังก์ชัน ReadFile หรือ WriteFile แล้ว เปรียบเทียบครั้งนี้เป็นวิธีที่ใช้ สำหรับการดำเนินการ I/O เกิดขึ้นจริงจะทำให้เสร็จจะมีประโยชน์อย่างมาก ถ้าส่วนใหญ่ เวลาจะใช้ใน I/O การออกจริง ๆ แล้ว I/O ของคุณกำลังถูก เสร็จสมบูรณ์พร้อมกัน อย่างไรก็ตาม ถ้าเวลาใช้ในการออกเอกสารการร้องขอ I/O จะ ค่อนข้างเล็กเทียบกับเวลาจะใช้สำหรับการดำเนินการ I/O เพื่อ สมบูรณ์ แล้วการดำเนินงานของคุณจะถูกถือแบบอะซิงโครนัส ตัวอย่าง รหัสที่ระบุไว้ก่อนหน้าในบทความนี้ใช้ฟังก์ชัน QueryPerformanceCounter ทำของตัวเอง รวบรวมภายในสถานะงาน

การตรวจสอบประสิทธิภาพการทำงานจะช่วยตรวจสอบประสิทธิภาพของโปรแกรม การใช้ดิสก์และแคช ใด ๆ ของตัวนับประสิทธิภาพการทำงานสำหรับการติดตาม วัตถุแคจะบ่งชี้ประสิทธิภาพการทำงานของตัวจัดการการแคชหรือไม่ ติดตามตัวนับประสิทธิภาพการทำงานสำหรับดิสก์ทางกายภาพหรือดิสก์แบบลอจิคัล วัตถุจะบ่งชี้ประสิทธิภาพการทำงานของระบบบนดิสก์นี้

มีโปรแกรมอรรถประโยชน์ต่าง ๆ ที่จะเป็นประโยชน์ในการตรวจสอบประสิทธิภาพการทำงาน PerfMon และ DiskPerf มีประโยชน์อย่างยิ่ง เพื่อให้ระบบเก็บรวบรวมข้อมูลประสิทธิภาพการทำงานของระบบดิสก์ คุณต้องออกใช้คำสั่ง -y diskperf หลังจากที่คุณออกคำสั่ง คุณต้องเริ่มต้นระบบเพื่อเริ่มต้นการรวบรวมข้อมูล

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมอรรถประโยชน์เหล่านี้และประสิทธิภาพในการตรวจสอบ ดูไดรฟ์ข้อมูล "ปรับให้เหมาะสม Windows NT " ใน Windows NT ทรัพยากร เอกสารชุดนี้
SQL Server จำเป็นต้องมีระบบการสนับสนุน 'รับประกันจัดส่งไปยังสื่อเสถียรภาพ' ตามคำแนะนำภายใต้โปรแกรม Microsoft SQL Server เก็บ Always-On โซลูชันตรวจทาน Foสำหรับข้อมูลเพิ่มเติมเกี่ยวกับความต้องการอินพุต และเอาท์พุตสำหรับ SQL Server database engine คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
967576Microsoft SQL Server ฐานข้อมูลเอ็นจินการรับเข้า/ส่งออกข้อกำหนด

คุณสมบัติ

หมายเลขบทความ (Article ID): 156932 - รีวิวครั้งสุดท้าย: 30 พฤษภาคม 2556 - Revision: 2.0
ใช้กับ
  • Microsoft Win32 Application Programming Interface
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Keywords: 
kbapi kbfileio kbinfo kbkernbase kbmt KB156932 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:156932

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com