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

Thủ tục lưu hướng dẫn thực hành

10 710 1
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thủ Tục Lưu (Hướng Dẫn Thực Hành)
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Hướng Dẫn
Định dạng
Số trang 10
Dung lượng 2,44 MB

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

Nội dung

Thủ tục lưu hướng dẫn thực hành

Trang 1

Chương 14 Thủ tục lưu (Hướng dẫn thực hành)

Mục đích của chương 14

Kết thúc chương 14 bạn có thể:

 Tạo các thủ tục lưu trong Enterprise Manager bằng wizard, hoặc không cần wizard

 Sử dụng công cụ Query Analyzer để tạo các thủ tục lưu

 Thực thi các thủ tục lưu trong Query Analyzer

 Biên dịch lại các thủ tục lưu trong Query Analyzer

 Sửa đổi các thủ tục lưu trong Query Analyzer và Enterprise Manager

 Sử dụng các tham số vào-ra cho các thủ tục

 Sử dụng các thủ tục lưu hệ thống

 Xử lý các lỗi tính huống trong các thủ tục lưu

Các bước được đưa ra trong chương này là chi tiết, dễ hiểu Nó được tạo ra với mục đích giúp người đọc có thể học và hiểu công cụ một cách đầy đủ.

Hãy làm theo các bước sau một cách cẩn thận.

Phần I – Hướng dẫn Thời gian : 1 giờ 30 phút 14.1 Thủ tục lưu

Mọi người sử dụng cơ sở dữ liệu đều quan tâm đến tốc độ và hiệu quả của cơ sở dữ liệu

đó Thủ tục lưu giúp nâng cao tốc độ xử lý và hiệu quả của cơ sở dữ liệu Thủ tục lưu là tập hợp các câu lệnh T-SQL đã được biên dịch trước, được lưu trữ dưới một tên nhất định, và được xử lý như một đơn vị

Thủ tục lưu có thể được tạo trong Enterprise Manager, bằng Wizard hoặc không

14.1.1 Tạo Thủ tục lưu không cần Wizard.

Chúng ta hãy tạo một thủ tục lưu có tên là DisplayProducts trong cơ sở dữ liệu

Northwind,mà không sử dụng wizard Thủ tục sẽ hiển thị các sản phẩm được cung cấp

bởi công ty Pavlova, Ltd Các bước thực hiện như sau:

1 Nhấn đúp chuột vào cơ sở dữ liệu Northwind.

Một danh sách các đối tượng bên trong cơ sở dữ liệu Northwind được hiển thị.

2 Nhấn chuột phải vào đối tượng Stored Procedures, và chọn New Stored

Procedure… từ pop-up menu.

Hộp thoại Stored Procedure Properties – New Stored Procedure được hiển thị.

Trang 2

3 Nhập đoạn lệnh sau vào phần Text:

CREATE PROCEDURE DisplayProducts AS

SELECT productid, productname, unitprice FROM products p, suppliers s

WHERE p.supplierid = s.supplierid AND companyname = 'Pavlova, Ltd.' Hình 14.1 Hiển thị hộp thoại với câu lệnh CREATE PROCEDURE

Hình 14.1: Tạo thủ tục lưu không cần Wizard

4 Nhấn vào nút bấm Check Syntax để kiểm tra sự chính xác về cú pháp của đoạn

mã.

Một thông báo được hiển thị, như trong hình 14.2

Trang 3

5 Nhấn vào nút bấm OK trên thông báo.

6 Nhấn vào nút bấm OK trong hộp thoại Stored Procedure Properties.

Thủ tục DisplayProducts đã được tạo ra, và xuất hiện trong ô vuông bên phải, đó là danh

sách các thủ tục lưu

14.1.2 Tạo thủ tục lưu với Wizard

SQL Server wizard có thể được sử dụng để tạo một thủ tục lưu Wizard giúp tạo các thủ tục, các thủ tục này có thể được sử dụng để chèn, cập nhật và xóa dữ liệu từ một bảng Chúng ta có thể đồng thời tạo các thủ tục lưu cho mỗi thao tác dữ liệu hoạt động trên một

số bảng

Hãy sử dụng wizard tạo hai thủ tục lưu trong cơ sở dữ liệu Northwind: một để xóa dữ liệu từ bảng Categories, và thủ tục lưu còn lại để nhập thêm dữ liệu vào bảng

Customers Các bước thực hiện như sau:

1 Nhấn chuột vào biểu tượng Run a Wizard trên thanh công cụ Hoặc nhấn chuột

vào Tools trên menu và chọn tùy chọn Wizards từ drop-down menu.

2 Mở rộng tùy chọn Database.

Một danh sách các wizard được hiển thị

3 Chọn tùy chọn Create Stored Procedure Wizard

4 Nhấn chuột vào nút bấm OK để bắt đầu wizard.

Hộp thoại Create Stored Procedure Wizard được hiển thị.

5 Nhấn chuột vào nút bấm Next.

6 Bảo đảm rằng cơ sở dữ liệu Northwind đã được lựa chọn như Database name, và

nhấn vào nút bấm Next.

7 Đánh dấu vào hộp chọn Insert cho bảng Customers, và họp chọn Delete cho

bảng Categories, như trong hình 14.3.

Trang 4

Hình 14.3: Chọn các thủ tục lưu

8 Nhấn chuột vào nút bấm Next

9 Chọn Finish để tạo các thủ tục.

Một thông báo quá trình tạo các thủ tục đã thành công được hiển thị,như hình 14.4

Hình 14.4: Thông báo về quá trình tạo thủ tục lưu bằng Wizard.

10 Nhấn chuột vào nút OK.

Hai thủ tục lưu mới tạo xuất hiện trong bên phải ô vuông mà liệt kê các thủ tục lưu

14.1.3 Thực thi các thủ tục lưu

Trang 5

1 Trong Enterprise Manager, chọn Tools | SQL Query Analyzer.

2 Trong cửa sổ truy vấn , nhập vào câu lệnh sau:

EXECUTE DisplayProducts

3 Nhấn vào nút chọn Execute Query trên thanh công cụ, hoặc nhấn phím F5

Thủ tục đã được thực thi , kết quả như trên hình 14.5

Hình 14.5: Thi hành một thủ tục lưu.

14.1.4 Biên dịch lại thủ tục lưu

Một thủ tục lưu bắt buộc phải được biên dịch lại để chắc chắn rằng các truy vấn trong thủ tục đã được tối ưu hóa tương ứng với việc thay đổi các chỉ mục Các thủ tục lưu có thể được biên dịch lại theo ba cách sau:

Sử dụng thủ tục lưu hệ thống sp_recompile

 Thêm tùy chọn WITH RECOMPILE cùng với câu lệnh CREATE PROCEDURE

 Thêm tùy chọn WITH RECOMPILE cùng với câu lệnh EXECUTE

Chúng ta hãy sử dụng câu lệnh EXECUTE cùng với tùy chọn WITH RECOMPILE để

chạy thủ tục DisplayProducts Để xem tác động của tùy chọn, đầu tiên chúng ta sẽ thi

hành thủ tục mà không có tùy chọn.Chúng ta sẽ sử dụng lệnh SET STATISTICS TIME

ON để hiển thị số phần nghìn giây cần thiết để phân tích cú pháp, biên dịch và chạy mỗi một câu lệnh.Các bước thực hiện như sau:

1 Trong cửa sổ truy vấn Query Analyzer, đánh vào đoạn lệnh sau:

SET STATISTICS TIME ON

EXECUTE DisplayProducts

2 Nhấn vào nút bấm Execute Query trên thanh công cụ,hoặc nhấn phím F5.

3 Chọn Messages tab ở duới của sổ Results.

Trang 6

Chi tiết của việc thực thi như phân tích cú pháp, biên dịch và thời gian thực hiện mỗi câu lệnh được hiện thị trong hình 14.6

Hình 14.6: Thời gian kiểm tra thực hiện thủ tục lưu.

Thời gian phân tích cú pháp và biên dịch là 0 phần nghìn giây Bây giờ chúng ta thực thi thủ tục lưu đó một lần nữa nhưng với tùy chọn WITH RECOMPILE

4 Trong cửa sổ truy vấn Query Analyzer, nhập vào câu lệnh sau:

EXECUTE DisplayProducts WITH RECOMPILE

5 Nhấn vào nút bấm Execute Query trên thanh công cụ,hoặc nhấn phím F5.

6 Chọn tùy chọn Messages tab ở dưới cửa sổ Results.

Chi tiết quá trình thực thi được hiển thị trong hình 14.7

Trang 7

Hình 14.7: Thời gian kiểm tra thực thi thủ tục lưu

Thời gian phân tích cú pháp và biên dịch là 7 phần nghìn giây, thời gian này chỉ ra rằng tùy chọn WITH RECOMPILE có tác động mạnh lên quá trình biên dịch một thủ tục lưu

7 Đóng cửa sổ Query Analyzer.

14.1.5 Sửa đổi các thủ tục lưu

Chúng ta có thể sử dụng công cụ Enterprise Manager để sửa đổi các thủ tục lưu.Chúng ta

sẽ sửa đổi thủ tục DisplayProducts để nó chấp nhận tên công ty như một tham số của thủ

tục.Thủ tục sẽ hiển thị các sản phẩm được cung cấp bởi một công ty đã được chỉ định.Các bước thực hiện trong Enterprise Manager lần lượt như sau:

1 Chọn đối tượng Stored Procedures ở trong cơ sở dữ liệu Northwind.

2 Trong ô bên phải, nhấn chuột phải vào thủ tục DisplayProducts.

3 Chọn Properties từ pop-up menu.

4 Sửa đổi đoạn mã trong Text như sau:

CREATE PROCEDURE DisplayProducts

@v_coname VARCHAR(40)

AS

SELECT productid, productname, unitprice

FROM products p, suppliers s WHERE p.supplierid = s.supplierid

Trang 8

AND companyname = @v_coname GO

5 Nhấn vào nút bấm Check Syntax để kiểm tra sự chính xác về cú pháp của đoạn

6 Nhấn vào nút bấm OK trên hộp thoại thông báo việc kiểm tra cú pháp đã thành

công.

7 Nhấn vào nút bấm Apply để ghi lại những sự thay đổi

8 Nhấn vào nút bấm OK để đóng hộp thoại Stored Procedure Properties.

14.1.6 Xóa các thủ tục lưu

Chúng ta có thể sử dụng công cụ Enterprise Manager để xóa các thủ tục lưu.Bây giờ

chúng ta sẽ xóa thủ tục DisplayProducts Các bước thực hiện trong Enterprise Manager

như sau:

1 Chọn đối tượng Stored Procedures ở trong cơ sở dữ liệu Northwind.

2 Trong ô bên phải, nhấn chuột phải vào thủ tục DisplayProducts.

3 Chọn Delete từ pop-up menu.

4 Trong hộp thoại Drop Objects, nhấn vào nút bấm Drop All

Thủ tục lưu DisplayProducts đã được xóa và nó không còn xuất hiện trong ô bên phải

liệt kê các thủ tục lưu

Thực hiện các thao tác sau trong Query Analyzer sử dụng cơ sở dữ liệu pubs :

1 Tạo một thủ tục lưu tên là Get_Sales_Avg có trường author ID là một tham số Thủ tục sẽ hiển thị the average year-to-date sales made on all titles written by the author Sử dụng

câu lệnh CREATE PROCEDURE, và một biến cục bộ cho tham số

2 Thực thi thủ tục Get_Sales_Avg để chắc chắn rằng nó đã được biên dịch lại Chuyền tham

số author ID là 267-41-2394 cho thủ tục Sử dụng câu lệnh EXECUTE với tùy chọn WITH

RECOMPILE

3 Hiển thị tên của tất cả các thủ tục lưu được khai báo trong cơ sở dữ liệu pubs Sử dụng thủ tục lưu hệ thống sp_stored_procedures.

4 Hiển thị mã cho thủ tục lưu Get_Sales_Avg Sử dụng thủ tục lưu hệ thống sp_helptext.

Trang 9

1 Sửa đổi thủ tục lưu Get_Sales_Avg đã được tạo trong phần II Thủ tục sẽ ghi lại lỗi nếu trường author ID được nhập vào không đúng Nếu trường author ID đúng, the average

year-to-date sales for all titles written by the author sẽ được trả về.

2 Thực hiện việc sửa đổi thủ tục Get_Sales_Avg cho author ID 267-41-2394 Nếu giá trị được trả về bởi thủ tục là lớn hơn 5000, sẽ hiện thị một thông báo là ‘High year-to-date sales’ Các trường hợp khác sẽ hiển thị thông báo ‘Low year-to-date sales’ Nếu trường author ID

không đúng, không một thông báo nào liên quan đến việc bán hàng được hiển thị

Trang 10

This page has been intentionally left blank.

Ngày đăng: 11/09/2012, 14:32

HÌNH ẢNH LIÊN QUAN

Hình 14.1: Tạo thủ tục lưu không cần Wizard - Thủ tục lưu hướng dẫn thực hành
Hình 14.1 Tạo thủ tục lưu không cần Wizard (Trang 2)
Hình 14.3: Chọn các thủ tục lưu. - Thủ tục lưu hướng dẫn thực hành
Hình 14.3 Chọn các thủ tục lưu (Trang 4)
Hình 14.4: Thông báo về quá trình tạo thủ tục lưu bằng Wizard. - Thủ tục lưu hướng dẫn thực hành
Hình 14.4 Thông báo về quá trình tạo thủ tục lưu bằng Wizard (Trang 4)
Hình 14.5: Thi hành một thủ tục lưu. - Thủ tục lưu hướng dẫn thực hành
Hình 14.5 Thi hành một thủ tục lưu (Trang 5)
Hình 14.6: Thời gian kiểm tra thực hiện thủ tục lưu. - Thủ tục lưu hướng dẫn thực hành
Hình 14.6 Thời gian kiểm tra thực hiện thủ tục lưu (Trang 6)
Hình 14.7: Thời gian kiểm tra thực thi thủ tục lưu - Thủ tục lưu hướng dẫn thực hành
Hình 14.7 Thời gian kiểm tra thực thi thủ tục lưu (Trang 7)

TỪ KHÓA LIÊN QUAN

w