hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Micrsoft SQL Server
Truy vấn metadata và Dynamyic Management Object trong SQL Server

Truy vấn metadata và Dynamyic Management Object trong SQL Server

  • 05-06-2022
  • Toanngo92
  • 0 Comments

Thuộc tính của một đối tượng như là bảng hoặc view được lưu trữ trong một bảng hệ thống đặc biệt. Các thuộc tính này được gọi là metadata. Tất cả SQL objects đều có metadata. Các metadata này có thể xem được bằng system views, những view được định nghĩa sẵn của SQL Server

Có khoảng hơn 230 system views khác nhau và chúng được tự động thêm vào database mà user tạo ra. Các views này được nhóm lại thành vài schemas khác nhau như sau.

Mục lục

  • System Catalog Views
  • Information Schema Views
  • System Metadata functions
  • Truy vấn đối tượng quản lý động

System Catalog Views

Những views này chứ thông tin về mục lục bên trong hệ thống SQL Server. Catalog tương tự như inventory hoặc objects. Các views này chứa một lượng lớn metadata. Trong các phiên bản trước của SQL Server, để lấy dữ liệu này người dùng cần truy vấn một lượng lớn dữ liệu trong bảng hệ thống, views hệ thống, functions hệ thống. Từ sau phiên bản 2021 trở đi, tất cả người dùng có thể truy vấn dễ dàng vào catalog metadata để tìm kiếm.

Ví dụ:

SELECT name,object_id,type,type_desc
FROM sys.tables;

Information Schema Views

Người dùng có thể truy vấn thông tin schemaview và trả về metadata hệ thống. Những views này hữu dụng khi giao tiếp với bên thứ ba. Thông tin schema views cho phép các ứng dụng hoạt động chính xác mặc dù đã có những thay đổi quan trọng đối với các bảng hệ thống bên dưới.

Bảng phía dưới sẽ giúp chúng ta quyết định nên truy vấn SQL Server-specific system views hay information schema views:

Information Schema ViewsSQL Server System Views
Chúng được lưu trữ trong Schema của riêng chúng, INFORMATION_SCHEMAChúng xuất hiện trong sys schema.
Nó sử dụng thuật ngữ tiêu chuẩn thay vì thuật ngữ SQL Server. Ví dụ: sử dụng catalog thay vì database và domain thay vì kiểu dữ liệu do người dùng xác định.Chúng tuân theo thuật ngữ SQL Server.
Chúng có thể không hiển thị tất cả siêu dữ liệu có sẵn cho các dạng xem danh mục riêng của SQL Server. Ví dụ: cột sys bao gồm các thuộc tính cho thuộc tính nhận dạng và thuộc tính cột được tính toán, trong khi các cột INFORMATION_SCHEMA thì không.Chúng có thể hiển thị tất cả siêu dữ liệu có sẵn cho các dạng xem danh mục của SQL Server.

Ví dụ:

SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES;

System Metadata functions

Ngoài các views, SQL Server cung cấp một số hàm tích hợp trả về siêu dữ liệu cho một truy vấn. Chúng bao gồm các hàm vô hướng và các hàm có giá trị bảng, có thể trả về thông tin về cài đặt hệ thống, tùy chọn phiên và một loạt các đối tượng khác.

Các hàm siêu dữ liệu của SQL Server có nhiều định dạng khác nhau, Một số có vẻ giống với các hàm vô hướng tiêu chuẩn, chẳng hạn như ERROR_NUMBER(). Các hàm khác sử dụng các tiền tố đặc biệt, chẳng hạn như @@VERSION hoặc $PARTITION.

Function NameDescriptionExample
OBJECT_ID(<object_name>)Trả về ID của database objectSELECT OBJECT_ID(‘Sales.Customer’)
OBJECT_NAME(<object_id>)Trả về tên tương ứng của một object IDSELECT OBJECT_NAME(197575742)
@@ERRORTrả về 0 nếu câu lệnh cuối thành công, nếu không trả về mã lỗiSELECT 5/0
SELECT @@ERROR
SERVERPROPERTY(<property>)Trả về giá trị xác định của thuộc tính serverSELECT SERVERPROPERTY(‘Collation’)

Ví dụ sử dụng câu lệnh SELECT để query system metadata:

SELECT SERVERPROPERTY('EDITION') AS EditionName;

Một trong những tính năng mới trong SQL Server 2019 là siêu dữ liệu (metadata) tempdb được tối ưu hóa cho bộ nhớ. Nhóm SQL Server đã nâng cao mã tempdb với các tối ưu hóa để một số siêu dữ liệu có thể là nút thắt cổ chai trên các hệ thống tempdb nặng hiện có thể dựa vào bộ nhớ và được tối ưu hóa để truy cập RAM.

Các môi trường có dung lượng lớn, quy mô lớn sử dụng nhiều tempdb thường gặp phải kiểu tắc nghẽn này, Trước đó, điều này sẽ yêu cầu một số loại giải pháp để giảm việc sử dụng tempdb. Tuy nhiên, với tính năng mới này, có thể cho phép siêu dữ liệu lưu lại trong bộ nhớ và được truy cập một cách tối ưu.

Truy vấn đối tượng quản lý động

Lần đầu được giới thiệu bởi SQL Server 2006, Dynamic Management Views (DMVs) và Dynamic Management Functions (DMFs) là những đối tượng quản lý động (dynamic management object) mà trả về thông tin server hoặc thông tin trạng thái của database. DMVs và DMFs gọi chung là đối tượng quản lý động. Chúng cung cấp cái nhìn sâu sắc về hoạt động của phần mềm và có thể được sử dụng để kiểm tra trạng thái của phiên bản SQL Server, khắc phục sự cố và điều chỉnh hiệu suất.

Cả DMVs và DMFs trả về dữ liệu định dạng bảng nhưng sự khác biệt là DMF nhận vào ít nhất một tham số, DMV không nhận vào tham số. SQL Server 2019 cung cấp gần 200 đối tượng quản lý động (dynamic management object). Để truy vấn tới DMVs, sẽ cần phải có quyền VIEW SERVER STATE hoặc VIEW DATABASE STATE, dựa trên phạm vi của DMV.

Chia danh mục và truy vấn DMVs

Danh sách quy ước giúp tổ chức DMVs bằng function

Naming PartternDescription
dbDatabase related (CSDL quan hệ)
ioI/O statistics (Thống kê input/output)
OsSQL Server Operation System Information
‘tran’Transaction-related
‘exec’Query execution-related metadata
Tổ chức DMVS bằng Function

Để truy vấn đối tượng quản lý động (dynamic management object), bạn sử dụng câu lệnh SELECT như cách bạn làm với bất kỳ đối tượng view hoặc multi-valued table. Ví dụ: Đoạn mã phía dưới trả về danh sách các kết nối người dùng hiện tại từ sys.dm_ex.

sys.dm_exec_sessions là một DMV có phạm vi máy chủ hiển thị thông tin về tất cả các kết nối người dùng đang hoạt động và tác vụ nội bộ. Thông tin này bao gồm người dùng đăng nhập, cài đặt phiên hiện tại, phiên bản ứng dụng khách, tên chương trình khách, thời gian đăng nhập ứng dụng khách, v.v. sys.dm_exec_sessions có thể là được sử dụng để xác định một phiên cụ thể và tìm thông tin về phiên đó.

Ví dụ:

SELECT session_id, login_time, program_name FROM sys.dm_exec_sessions WHERE login_name='sa' and is_user_process = 1;

Ở đây, is_user_process là một cột trong dạng xem xác định xem phiên có phải là phiên hệ thống hay không. Giá trị 1 cho biết rằng đó không phải là phiên hệ thống mà là phiên của người dùng. Cột program_name xác định tên của chương trình khách hàng đã khởi tạo phiên, Cột login_time thiết lập thời gian khi phiên bắt đầu.

Bài viết liên quan:

PolyBase, Query Store, và Stretch Database trong SQL Server
Dữ liệu JSON trong SQL Server
Các tính năng nâng cao SQL trong SQL Server 2019
Giới thiệu Azure SQL
Xử lý lỗi và TRY CATCH trong SQL Server
Transaction trong SQL Server
FUNCTION (hàm) trong SQL Server
Lập trình và control of flow trong Transact SQL
Trigger trong SQL Server
Index trong SQL Server
Stored Procedure trong SQL Server
VIEW trong SQL Server

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

4. KIỂM THỬ VÀ TRIỂN KHAI HỆ THỐNG

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

3. THIẾT KẾ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×