1. Trang chủ
  2. » Công Nghệ Thông Tin

công nghệ ado.net cới c# - nâng cao hiệu quả hoạt động cơ sở dữ liệu

24 469 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 475 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Multiple Active Result Sets MARS•MARS cho phép sử dụng một connection để tạo ra nhiều tập kết quả cùng một lúc •Sử dụng cùng một connection để thực hiện nhiều command xen kẽ • MARS được

Trang 2

Nâng cao hiệu quả hoạt động cơ

sở dữ liệu

1. Các tính năng tăng cường của ADO.NET trong NET Framework 2.0

2. SQL Server Provider Statistics

Trang 3

1 Các tính năng tăng cường của

ADO.NET trong NET Framework 2.0

•Multiple Active Result Sets (MARS)

•Asynchronous Operations

•Batch DataSet Updates

•Bulk Data Copies

Trang 4

Multiple Active Result Sets (MARS)

•MARS cho phép sử dụng một connection để tạo ra nhiều tập kết quả cùng một lúc

•Sử dụng cùng một connection để thực hiện nhiều command xen kẽ

• MARS được phép sử dụng trên các connection đến các CSDL có hổ trợ MARS như Microsoft SQL Server 2005

Trang 5

Multiple Active Result Sets (MARS)

Trang 6

Minh họa MARS

•Khai báo 2 chuỗi ConnectionString: chuỗi 1 có MARS, chuỗi 2 không có MARS

•Tạo 2 command:

− Command 1: có câu lệnh Select từ table Contact – Cha

− Command 2: có câu lệnh Select từ table Employee – Con

•Sử dụng Connection 1 và thi hành 2 command, sau đó đổi Connection

2  nhận xét

Trang 7

Multiple Active Result Sets (MARS)

•Một số lưu ý khi sử dụng MARS

− MARS chỉ được hổ trợ từ NET 2.0 trở lên và SQL

Server 2005 trở lên

− Các hoạt động của MARS là đồng bộ (synchronous)

− Các connection có MARS sẽ tạo ra các logical Sessions làm tốn thêm chi phí  phải cân nhắc có dùng hay không

− Các hoạt động có MARS là Thread không an toàn

Trang 9

Asynchronous Operations

•So sánh họat động đồng bộ và không đồng

Thi hành đồng bộ (Syschronous Execution): mỗi lệnh

phải hoàn tất trước khi lệnh kế tiếp bắt đầu thi hành

Trang 10

Asynchronous Operations

•So sánh họat động đồng bộ và không đồng

Thi hành không đồng đồng bộ (Asyschronous

Execution): ứng dụng vẫn tiếp tục thi hành các lệnh

trong khi chờ kết quả xử lý của dòng lệnh trước

Trang 11

Asynchronous Operations

•Tổng quan về thi hành không đồng bộ

− ADO.NET 2.0 có các phương thức BeginXXX and

EndXXX để khởi tạo hoạt động không đồng bộ và nhận

kết quả rồi xóa sạch các tài nguyên đang hổ trợ nó

− Sử dụng giao tiếp IAsyncResult để giám sát hoạt động không đồng bộ

Trang 12

Asynchronous Operations

•Tổng quan về thi hành không đồng bộ

Khai báo: b ổ sung vào chuỗi ConnectionString thuộc

Trang 13

Minh họa Asynchronous Operations

•Tạo 2 Connection từ 2 CSDL riêng biệt

•Tạo Command 1 trên Connection 1 và thi hành

•Tạo Command 2 trên Connection 2 và thi hành

•Thi hành kết thúc 2 command trên

•Tính thời gian thi hành và xuất ra màn hình

Trang 14

Batch DataSet Updates

•Cải tiến thao tác truy cập dữ liệu bằng cách giảm sự xoay vòng dữ liệu trong quá trình cập nhật

•Sử dụng thuộc tính UpdateBatchSize của đối tượng DataAdapter để xác định số lệnh có thể thi hành trong một lô (batch)

Trang 15

Batch DataSet Updates

•Các giá trị của UpdateBatchSize:

= 1: mặc định (không áp dụng Batch Update)

= 0: số dòng tối đa được cập nhật trong một batch mà

khả năng của server cho phép

= x : x là số dòng do người lập trình khai báo

Trang 16

Batch Dataset Updates

•Tạo Connection, DataAdapter và Dataset

•Khai báo 2 biến chuỗi để lưu trữ giá trị số lần cập nhật và số dòng

được cập nhật

•Phát sinh 2 sự kiện RowUpdated và RowUpdating của DataAdapter để tính toán 2 biến chuỗi

•Tạo Command có câu lệnh rút trích khoảng 11 dòng

•Tạo bộ lệnh cập nhật cho DataAdapter

•Cập nhật 1 field nào đó có giá trị bằng chính nó cộng thêm chuỗi “abc”, tất cả các dòng trong Table

•Khai báo số lần dòng trong 1 lần cập nhật là 3, thực hiện cập nhật

Trang 17

Bài thực hành

•Cập nhật filed Name trong bảng Production.Product (lấy giá trị của

chính field này + “- Edit” )

•Xuất ra số lần cập nhật

Trang 18

Bulk Data Copies

•Bulk Copy cho phép bạn thực hiện các hoạt động sao chép cho một số lượng lớn dữ liệu giữa một nguồn dữ liệu lưu trữ và một bảng của nguồn đích

•Sử dụng lớp SqlBulkCopy để thực hiện kỹ thuật này

Trang 19

Bulk Data Copies

SqlBulkCopy <biến bcp> = new SqlBulkCopy(<Connection2>)

<biến bcp>.DestinationTableName = “Tên Table đích”;

Trang 20

Minh họa Bulk Data Copies

• Tạo 2 Connection trên 2 CSDL khác nhau

• Tạo Command 1 trên connection 1 có câu lệnh rút trích

table HumanResources.Employee

• Mở 2 connection

• Tạo DataReader từ command 1

• Thực hiện Bulk Copy

Trang 21

2 SQL Server Provider Statistics

•Truy xuất các Statistic trên kết nối SQL Server

Trang 22

Truy xuất các Statistic trên kết nối

SQL Server

•Bật thuộc tính StatisticsEnabled của đối tượng Connection

•Sử dụng phương thức RetrieveStatistics của đối tượng Connection để lưu trữ bộ dữ liệu thống kê

Trang 23

Truy xuất các Statistic trên kết nối

SQL Server

•Khai báo và sử dụng

<connection>.StatisticsEnabled = true;

// mở connection và thi hành Comand hoặc tạo DataReader

IDictionary <biến IDc> = <connection>.RetrieveStatistics();

//duyệt <biến IDc> và xuất ra màn hình để xem các số liệu thống kê

Trang 24

Minh họa truy xuất Statistics

• Tạo Connection có thuộc tính StatisticsEnabled=true

• Sử dụng Command để tạo nguồn dữ liệu cho DataTable

• Xuất dữ liệu của DataTable ra DataGridview 1

• Tạo mảng kiểu Idictionary để lưu số thống kê

• Xuất mảng này ra DataGriview 2

Ngày đăng: 28/05/2014, 18:05

🧩 Sản phẩm bạn có thể quan tâm

w