기계실 재구성 - 저장 프로세스
그러면 저장 프로세스는 무엇입니까?
저장 프로세스는 서버에 저장된 미리 컴파일된 SQL 문장으로 처음 실행할 때 문장 검사와 컴파일을 하고 컴파일된 저장 프로세스는 고속 캐시에서 후속 호출에 사용된다. 그러면 저장 프로세스를 더욱 신속하고 효율적으로 실행할 수 있다.저장 프로세스는 입력과 출력의 매개 변수를 가지고 있을 수 있다.
자신의 간단한 이해는 실행할 SQL 문장을 데이터베이스에 써서 사용할 때 직접 호출하면 OK라는 것이다.
스토리지 프로세스의 이점은 무엇입니까?
1. 복용성이 강하다.저장 프로세스는 중복 사용이 가능하여 데이터베이스 개발의 작업량을 줄일 수 있다.
2. 집행 효율을 높인다.저장 프로세스는 만들 때 컴파일된 후에 실행할 때마다 다시 컴파일할 필요가 없고 실행할 때 일반 SQL 문장보다 빠르고 효율을 높인다.
3. 네트워크 트래픽 감소저장 프로세스는 서버에 위치하고 호출할 때 저장 프로세스의 이름과 파라미터만 전달하면 되기 때문에 네트워크 전송의 데이터 양을 낮출 수 있다.
4. 더욱 안전하다.매개 변수화된 조회 과정은 SQL 주입 공격을 방지할 수 있다.
어떻게 만듭니까?
다음 그림은 데이터베이스의 프로그래밍 가능성에서 저장 프로세스를 찾은 다음 새로 만들기를 우클릭하십시오
어떻게 씁니까?
저장 프로세스의 경우 매개변수 및 SQL 문을 씁니다.
USE [chargejf]
GO
/****** Object: StoredProcedure [dbo].[PRO_GroupParent] Script Date: 2016/3/5 16:48:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[PRO_GroupParent]
(@CmbName1 varchar(50),
@CmbMark1 varchar(50),
@txtContent1 varchar(50),
@CmbRelation1 varchar(50),
@CmbName2 varchar(50),
@CmbMark2 varchar(50),
@txtContent2 varchar(50),
@CmbRelation2 varchar(50),
@CmbName3 varchar(50),
@CmbMark3 varchar(50),
@txtContent3 varchar(50),
@tableName varchar(50))
AS
declare @TempSQL varchar(2000)
BEGIN
SET @TempSQL = 'select * from ' +@tableName + ' where' +@CmbName1 +@CmbMark1 +char(39) +@txtContent1 +char(39)
if @CmbRelation1 != ''
BEGIN
SET @TempSQL =@TempSQL +@CmbRelation1 +CHAR(32)+@CmbName2 +@CmbMark2 +CHAR(39) +@txtContent2 +CHAR(39)
if (@CmbRelation2 is not null)
BEGIN
SET @TempSQL =@TempSQL +@CmbRelation2 +CHAR(32)+@CmbName3 +@CmbMark3 +CHAR(39) +@txtContent3 +CHAR(39)
END
END
EXECUTE(@TempSQL)
END
D-레이어 호출
Dim cmdText As String
Dim table As DataTable
Dim sqlParams As SqlParameter() = {New SqlParameter("@CmbName1", Groupcheck.CmbName1),
New SqlParameter("@CmbName2", Groupcheck.CmbName2),
New SqlParameter("@CmbName3", Groupcheck.CmbName3),
New SqlParameter("@CmbMark1", Groupcheck.CmbMark1),
New SqlParameter("@CmbMark2", Groupcheck.CmbMark2),
New SqlParameter("@CmbMark3", Groupcheck.CmbMark3),
New SqlParameter("@txtContent1", Groupcheck.TxtContent1),
New SqlParameter("@txtContent2", Groupcheck.TxtContent2),
New SqlParameter("@txtContent3", Groupcheck.TxtContent3),
New SqlParameter("@CmbRelation1", Groupcheck.CmbRelation1),
New SqlParameter("@CmbRelation2", Groupcheck.CmbRelation2),
New SqlParameter("@tableName", Groupcheck.DbName)}
cmdText = "PRO_GroupParent"
table = sqlHelper.ExecSelect(cmdText, CommandType.StoredProcedure, sqlParams)
Return table
이전에 그룹 조회를 쓴 블로그가 있는데 비교해 보면 저장 과정의 사용은 SQL 문장을 데이터베이스에 옮긴 것에 불과하다. 사용할 때 호출을 하고 추가, 삭제, 수정을 하는 일련의 조작을 해서 실행 효율과 코드 복용을 향상시킨다. 그리 어렵지 않다. 그러므로 사람은 게으름에 놀라지 마라. 스스로에게 경고한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.