vb.net기계실 요금 시스템 재구성 - 저장 프로세스 사용

5043 단어 짜다sqlserverVB.NET
7층 로그인을 두드리는 과정에서 저장 과정의 개념을 접했지만 당시에는 아직 사용하지 않았다.공식적인 재구성 과정에서 조금씩 추가하고 저장 과정도 재구성에 추가했다.스토리지 프로세스에 대해 공식적으로 알게 되었습니다.
먼저
[저장 프로세스의 개념]
저장 프로세스 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. 저장 프로세스는 일종의 안전 메커니즘으로 충분히 이용될 수 있다.
시스템 관리자는 실행 중인 저장 프로세스에 대해 권한을 제한할 수 있어 일부 데이터에 대한 접근을 제한할 수 있고 권한이 부여되지 않은 사용자가 데이터에 대한 접근을 피하며 데이터의 안전을 보장할 수 있다.

좋은 웹페이지 즐겨찾기