Home
»
»Unlabelled
»
10 câu lệnh T-SQL Index cần thiết với DBA
Học viện đào tạo trực tuyến Thứ Hai, 28 tháng 4, 2014 0 No comments
- Những người SQL Server DBA (Database Administrator) – quản trị cơ sở dữ liệu biết rất rõ rằng các danh mục Index trong database rất giống với Index trong mục Library. Hoặc hiểu theo cách đơn giản rằng Index trong Database là 1 hệ cấu trúc có liên kết chặt chẽ với các bảng để nhanh chóng thu thập thông tin từ các dòng trong bảng đó. Trong bài viết dưới đây, chúng tôi sẽ giới thiệu với các bạn những câu lệnh về T-SQL có liên quan tới Index trong SQL rất có ích đối với bất kỳ người làm công việc DBA nào. Cụ thể, chúng ta sẽ chia ra làm 3 phân mục chính: khái niệm về Index, tạo các câu lệnh truy vấn – Query có liên quan đến thông tin, và cuối cùng là quá trình bảo dưỡng – Maintenance. Khái niệm chung về Index:1. Clustered Index:Có nhiệm vụ chính là lưu trữ dữ liệu của các dòng được sắp xếp theo thứ tự trong bảng dựa trên giá trị của khóa key. Chỉ 1 clustered index có thể được tạo trên mỗi bảng, bởi vì dữ liệu của các dòng chỉ có thể sắp xếp theo 1 thứ tự nhất định. Thêm 1 điểm nữa là clustered index có thể được “sản sinh” trong khi tạo những ràng buộc giống như Primary key trên bảng dữ liệu có sẵn. Ví dụ như: ALTER TABLE [MyAddress] Bên cạnh đó, clustered index cũng có thể được tạo trên mỗi cột mà không có liên kết đi kèm. Ví dụ: CREATE CLUSTERED INDEX [MyAddress_id_CIX] ON [MyAddress1] 2. Non Clustered Index:Được tạo ra để cải thiện hoạt động, hiệu suất của những chuỗi câu lệnh truy vấn thường xuyên được sử dụng, nhưng lại không bao gồm với clustered index. Bên trong khối nonclustered index, việc sắp xếp thông tin theo thứ tự của chỉ số index không khớp với thứ tự lưu trữ xét theo khía cạnh vật lý của các dòng dữ liệu trên ổ đĩa. Nonclustered Index có thể được tạo trên bảng có sẵn, bao gồm các cột không có trong clustered index. Ví dụ: CREATE UNIQUE NONCLUSTERED INDEX Hoặc, nonclustered index cũng có thể làm được trong khi tạo liên kết trong bảng có sẵn, ví dụ: ALTER TABLE [MyAddressType] 3. XML Index:Là 1 khái niệm khác, được sinh ra trên cột dữ liệu XML và các bảng có clustered index trên khóa Primary. 1 XML index thộc dạng Frimary: CREATE PRIMARY XML INDEX idx_xCol_MyTable on MyTable (xCol) Và với XML index secondary thì như sau: CREATE TABLE MyTable (Col1 INT PRIMARY KEY, XmlCol XML) 4. Spatial Index:1 thành phần trong SQL Server 2008 cung cấp cho người dùng những cột dữ liệu đặc biệt, có liên quan đến dữ liệu biểu trưng có liên quan đến lĩnh vực không gian, ví dụ như địa lý và hình học. 1 cấu trúc spatial index có thể được tạo bằng cú pháp sau: CREATE TABLE MySpatialTable(id int primary key, geometry_col geometry); Query Index có liên quan đến dữ liệu metadata:5. Tìm kiếm tất cả index:Trước tiên, nếu muốn tìm kiếm tất cả index thì hãy sử dụng câu lệnh truy vấn – query theo bảng, cột và khóa index của cơ sở dữ liệu sẵn có. SELECT OBJECT_SCHEMA_NAME(BaseT.[object_id],DB_ID()) AS [Schema], 6. Fragmentation:Còn với quá trình Fragmentation – tìm kiếm những thành phần index trong tình trạng “Fragmentation” của tất cả các bảng dữ liệu trong database hiện tại. Ví dụ như sau: SELECT object_name(IPS.object_id) AS [TableName], 7. Missing Index:Với các thành phần index bị mất, SQL Server vẫn có khả năng giám sát, theo dõi tình hình của index được tạo ra nhằm mục đích cải thiện hiệu suất hoạt động của chuỗi câu lệnh truy vấn. Phần mã dưới đây có chức năng liệt kê tất cả các mục index bị mất: SELECT sys.objects.name 8. Index không còn sử dụng:Thành phần cuối cùng chúng ta đề cập đến trong mục này là index không còn sử dụng, các bạn hãy áp dụng chuỗi câu lệnh dưới đây để liệt kê tất cả các phần index chưa từng được sử dụng, bên cạnh đó còn tạo ra lệnh DROP: SELECT o.name, indexname=i.name, i.index_id Index Maintainenance:9. Tái cấu trúc Index:Để xây dựng, tái tạo lại các mục index sau khi thực hiện quá trình defragmentation, hoặc khi muốn tạo cấu trúc bảng dữ liệu. Câu lệnh sau tương tự như DBCC DBREINDEX trong các phiên bản của SQL Server từ 2005: USE AdventureWorks2008R2; 10. REORGANIZE:Cú pháp REORGANIZE được áp dụng đối với các index ở các mức leaf khác nhau, cụ thể các câu lệnh REORGANIZE này luôn được thực hiện online, còn về mặt kỹ thuật, cú pháp này tương tự với DBCC INDEXDEFRAG trong các phiên bản SQL Server sau 2005. USE AdventureWorks2008R2; Chúc các bạn thành công! ![]() Topics: About Học viện đào tạo trực tuyến
Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email:
dinhanhtuan68@gmail.com
.
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng . - Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu... HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG. Bài đăng nổi bậtKhóa Đào Tạo Hacker Mũ TrắngNhấn vào đây để bắt đầu khóa học Giúp học viên tìm hiểu cơ bản bản chuyên sâu kỹ năng hack website, sever, email, sms, facebook... Khóa... ![]() Tuyển tập hay nhấtKhóa học trực tuyếnTruy cập nhiều nhất
Tin công nghệDownloadDanh mục bài viết
Nhóm Zalo CÔNG NGHỆ![]() Hiện nay có rất nhiều công việc mà bất cứ ai cũng có thể làm tốt khi không yêu cầu quá nhiều kiến thức chuyên môn, như: Bán hàng chẳng hạn. Ngồi một chỗ, với điện thoại và laptop là bạn có thể bán hàng 63 tỉnh thành, thậm chí toàn thế giới. Còn nếu bạn chưa biết bán hàng sao cho hiệu quả thì vào nhóm: HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN.
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN-TẬN TÂM-CHẤT LƯỢNG
© 2014. All Rights Reserved.
Designed by dinhanhtuan68@gmail.com Tel: 098 909 5293 Pages |