2012-02-19 31 views
5

Tôi có các thư mục NTFS có thể phát triển để chứa 100.000 đến 1.000.000 tệp, giới hạn trên được thảo luận trong số answer on NTFS performance này.Độ dài của tên tệp có ảnh hưởng đến chỉ mục thư mục NTFS lớn không?

Tệp của tôi có các đặc điểm sau:

1) Chúng có tên tệp dài (thường từ 64 đến 100 ký tự).

2) Đối với nhiều tệp, phần đầu của tên tệp có thể giống hệt nhau cho 20 đến 40 ký tự đầu tiên.

Tên tệp dài có ảnh hưởng đến hiệu suất chỉ mục thư mục NTFS hay không, trong việc tìm kiếm bản ghi của tệp từ tên, phân đoạn chỉ mục hoặc tăng trưởng chỉ mục?

Chỉ mục thư mục NTFS là (được báo cáo) B-cây. Tôi đã thử nghiệm phần mềm của mình với 50.000 tệp, nhưng tôi đang chạy thử nghiệm 'đường dẫn hạnh phúc', với ít hệ thống tập tin bị hỏng. Thử nghiệm đến 1.000.000 sẽ mất vài tuần để chạy phần mềm của tôi không ngừng.

Tôi đã xem xét viết trình giả lập, nhưng trước khi tôi làm điều đó, có ai có trải nghiệm thực tế với điều này không?

+0

Tại sao bạn cho rằng thử nghiệm đến hàng triệu sẽ mất vài tuần? Bạn có thể tạo thử nghiệm tổng hợp thực hiện các hoạt động dự kiến ​​trên một triệu tệp và sẽ mất nhiều thời gian hơn để viết thử nghiệm để chạy thử nghiệm. –

+0

Tôi sẽ không nghĩ đến 64 đến 100 tên tập tin ký tự như tên tập tin dài, dù sao đi nữa. – dmeister

+0

Từ bài viết này http://support.microsoft.com/kb/130694 có vẻ như hiệu suất có thể bị cản trở nếu bạn đã bật hỗ trợ tên tệp cũ. – NothingMore

Trả lời

1

Các thư mục NTFS là BTrees với dữ liệu ở cả nút bên trong và nút lá. Vì không có bất kỳ "tiền tố khóa nén", văn bản đầy đủ của tên tập tin được lưu trữ trong các nút là tốt. Tìm kiếm điều này với tên tập tin thử nghiệm có rất nhiều tiền tố giống hệt nhau chỉ đơn giản là lãng phí thời gian từ khi xem qua từng "trang" của thư mục có một loạt các so sánh giống hệt nhau trước khi gặp phải các ký tự phân biệt. Nếu bạn có thể làm cho ký tự ngoài cùng bên trái trong tên biến nhất, đó sẽ là một trợ giúp lớn.

Nhưng, cuối cùng, không có hệ thống tệp nào là cơ sở dữ liệu tốt và không có cơ sở dữ liệu nào là hệ thống tệp tốt.Bạn cần xem xét kích thước tệp của bạn và các đặc điểm sử dụng dự kiến.

2

NTFS thường cập nhật thuộc tính của tệp trên đĩa nếu hiện tại Last Access Time trong bộ nhớ khác hơn một giờ từ Last Access Time được lưu trữ trên đĩa hoặc khi tất cả tham chiếu trong bộ nhớ đến tệp đó biến mất, tùy theo điều nào gần đây hơn. Vì vậy, việc tắt Last Access Time sẽ cải thiện tốc độ truy cập thư mục và tệp.

Khi bạn lưu tệp có tên tệp dài vào ổ NTFS, theo mặc định, mục nhập thư mục tệp thứ hai có tên tệp ngắn tuân theo quy ước 8.3. Khi NTFS liệt kê các tệp trong một thư mục, nó phải tra cứu tên 8.3 được liên kết với tên tệp dài. Vì thư mục NTFS được duy trì ở trạng thái được sắp xếp, tên tệp dài tương ứng và tên 8.3 thường không nằm cạnh nhau trong danh sách thư mục. Vì vậy, NTFS sử dụng tìm kiếm tuyến tính của thư mục cho mọi tệp hiện tại. Do đó, lượng thời gian cần thiết để thực hiện danh sách thư mục tăng lên với hình vuông của số lượng tệp trong thư mục. Vô hiệu hóa việc tạo tệp 8.3 cũng sẽ cải thiện hiệu suất.

Hai khóa registry cần phải được thay đổi: NtfsDisable8dot3NameCreationNtfsDisableLastAccessUpdate, thiết lập giá trị của họ để 1.

Và, nếu bạn có thể đủ khả năng đó, sử dụng Solid State Drive (SSD) thay vì ổ cứng truyền thống, bởi vì hiệu suất hoạt động tốt hơn, xem tại đây http://en.wikipedia.org/wiki/Solid-state_drive#Comparison_of_SSD_with_hard_disk_drives.

Các vấn đề liên quan