vb.net기계실 요금 시스템 재구성 - 저장 프로세스 사용
먼저
[저장 프로세스의 개념]
저장 프로세스 Procedure는 특정 기능을 완성하기 위한 SQL 문장 집합으로 컴파일된 후 데이터베이스에 저장되며 사용자는 저장 프로세스의 이름을 지정하고 파라미터를 제시하여 실행한다.
저장 과정 중 논리 제어 문장과 데이터 조종 문장을 포함할 수 있으며, 매개 변수, 출력 매개 변수, 한 개 또는 여러 개의 결과 집합과 반환 값을 받아들일 수 있다.
[저장 프로세스의 사용]
먼저 데이터베이스 열기 - 저장 프로세스
오른쪽 버튼 - 새 스토리지 프로세스
CREATE PROCEDURE < >
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
예를 들어 기관실 요금 시스템에 새 사용자를 등록하는 저장 과정
CREATE PROCEDURE [dbo].[pro_Register]
-- Add the parameters for the stored procedure here
@Cardno char(12),
@Studentno char(12),
@Studentname char(12),
@Sex char(12),
@Department char(12),
@Grade char(12),
@Class char(12),
@Explain varchar(50),
@IsCheck char(12),
@Type char(12),
@Cash numeric(18,1),
@Date date,
@Time time(0),
@UserID char(12),
@Status char(12)
AS
BEGIN
insert into T_Student(Cardno,Studentname,Studentno,Sex,Department,Grade,Class,Cash,Explain,IsCheck,UserID,Type,Status)values(@Cardno ,@Studentname,'12',@Sex,@Department,@Grade,@Class,@Cash,@Explain,@IsCheck,@UserID,@Type,@Status)
insert into T_Recharge(Cardno,Studentno,Addmoney,Date,Time,UserID,Status)values(@Cardno,@Studentno,@Cash,@Date,@Time,@UserID,@Status)
END
저장 프로세스 이름: proRegister
호출 시 D 레이어
Public Function SelectStudent(ByVal student As Entity.StudentEntity, ByVal recharge As Entity.RechargeEntity) As Boolean Implements IDAL.IStudent.SelectStudent
Dim sqlparams As SqlParameter() = {New SqlParameter("@Cardno", student.Cardno),
New SqlParameter("@Studentname", student.StudentName),
New SqlParameter("@Studentno", student.Studentno),
New SqlParameter("@Sex", student.Sex),
New SqlParameter("@Department", student.Department),
New SqlParameter("@Grade", student.Status),
New SqlParameter("@Class", student.Clas),
New SqlParameter("@Cash", student.Cash),
New SqlParameter("@Explain", student.Explain),
New SqlParameter("@IsCheck", " "),
New SqlParameter("@UserID", student.UserID),
New SqlParameter("@Type", student.Type),
New SqlParameter("@Status", student.Status),
New SqlParameter("@Date", recharge.Dater),
New SqlParameter("@Time", recharge.Timer)
}
Dim strSql = "<span style="color:#FF0000;">pro_Register</span>"
Dim helper As New SqlHelper
Dim dt As New Integer
dt = helper.ExeAddDelUpdate("pro_Register", CommandType.StoredProcedure, sqlparams)
If dt > 0 Then
Return True
Else
Return False
End If
[저장 프로세스의 장점]
저장 프로세스는 표준 구성 요소 프로그래밍을 허용한다
1. 저장 프로세스는 표준 구성 요소 프로그래밍을 허용한다.
저장 프로세스를 만든 후 프로그램에서 여러 번 호출되어 실행할 수 있으며, 이 저장 프로세스의 SQL 문장을 다시 작성할 필요가 없다.또한 데이터베이스 전문가들은 수시로 저장 과정을 수정할 수 있지만 응용 프로그램의 원본 코드에 영향을 주지 않아 프로그램의 이식성을 크게 향상시켰다.
2. 저장 프로세스가 비교적 빠른 실행 속도를 실현할 수 있다.
만약 어떤 조작이 대량의 T-SQL 문장 코드를 포함하여 각각 여러 번 실행된다면 저장 과정은 일괄 처리의 실행 속도보다 훨씬 빠르다.저장 프로세스는 미리 컴파일된 것이기 때문에 처음으로 저장 프로세스를 실행할 때 조회 최적화기는 이를 분석하고 최적화하며 최종적으로 시스템 표에 존재하는 저장 계획을 제시한다.일괄 처리된 T-SQL 문장은 매번 실행될 때마다 미리 컴파일하고 최적화해야 하기 때문에 속도가 좀 느려야 한다.
기방 요금 시스템에서 데이터량과 사용자가 비교적 작기 때문에 일괄 처리와 저장 과정의 차이를 체득하지 못할 수 있다.사용자가 비교적 많고 데이터량이 비교적 많을 때 이 방법의 장점은 비교적 뚜렷하다.
3. 저장 프로세스로 네트워크 트래픽 감소
같은 데이터베이스 대상을 대상으로 하는 작업에 대해 만약에 이 조작에 관련된 T-SQL 문장이 하나의 저장 프로세스로 구성된다면 클라이언트에서 이 저장 프로세스를 호출할 때 네트워크에서 전달되는 것은 이 호출 문장일 뿐이고 그렇지 않으면 여러 개의 SQL 문장이 될 것이다.따라서 네트워크 유량을 줄이고 네트워크 부하를 낮추었다.
이 장점도 데이터 양이 비교적 많을 때 저장 과정의 장점을 뚜렷하게 체득할 수 있다.
4. 저장 프로세스는 일종의 안전 메커니즘으로 충분히 이용될 수 있다.
시스템 관리자는 실행 중인 저장 프로세스에 대해 권한을 제한할 수 있어 일부 데이터에 대한 접근을 제한할 수 있고 권한이 부여되지 않은 사용자가 데이터에 대한 접근을 피하며 데이터의 안전을 보장할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
우분투에 SQL 서버 설치Microsoft SQL Server는 오늘날 업계에서 가장 눈에 띄는 데이터베이스 중 하나입니다. 이번 포스팅에서는 우분투에 설치하는 방법을 알려드리겠습니다. sudo 권한이 있는 계정 1단계: 터미널 열기 단축키...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.