সঞ্চিত পদ্ধতি কী?


298

একটি "সঞ্চিত পদ্ধতি" কী এবং তারা কীভাবে কাজ করে?

সঞ্চিত প্রক্রিয়াটির মেক-আপ কী (প্রতিটি জিনিসকে অবশ্যই সঞ্চিত পদ্ধতিতে থাকতে হবে)?

উত্তর:


243

সঞ্চিত পদ্ধতিগুলি এসকিউএল স্টেটমেন্টগুলির একটি ব্যাচ যা কয়েকটি উপায়ে কার্যকর করা যেতে পারে। সর্বাধিক বড় ডিবিএমগুলি সঞ্চিত প্রক্রিয়া সমর্থন করে; যাইহোক, সব না। নির্দিষ্টকরণের জন্য আপনাকে আপনার নির্দিষ্ট ডিবিএমএস সহায়তা ডকুমেন্টেশন সহ যাচাই করতে হবে। আমি এসকিউএল সার্ভারের সাথে সর্বাধিক পরিচিত হিসাবে আমি সেটিকে আমার নমুনা হিসাবে ব্যবহার করব।

একটি সঞ্চিত প্রক্রিয়া তৈরি করতে সিনট্যাক্সটি মোটামুটি সহজ:

CREATE PROCEDURE <owner>.<procedure name>

     <Param> <datatype>

AS

     <Body>

উদাহরণস্বরূপ:

CREATE PROCEDURE Users_GetUserInfo

    @login nvarchar(30)=null

AS

    SELECT * from [Users]
    WHERE ISNULL(@login,login)=login

সঞ্চিত পদ্ধতির একটি সুবিধা হ'ল আপনি একটি অ্যাক্সেসের মাধ্যমে ডেটা অ্যাক্সেস লজিককে কেন্দ্রিয় করতে পারেন যা ডিবিএর পক্ষে অনুকূলকরণ করা সহজ। সঞ্চিত পদ্ধতিগুলির একটি সুরক্ষার সুবিধাও রয়েছে যে আপনি কোনও সঞ্চিত পদ্ধতিতে মৃত্যুদন্ড কার্যকর করার অধিকার দিতে পারেন তবে ব্যবহারকারীর অন্তর্নিহিত টেবিলগুলিতে পড়ার / লেখার অনুমতি থাকতে হবে না। এটি এসকিউএল ইঞ্জেকশনের বিরুদ্ধে একটি ভাল প্রথম পদক্ষেপ।

সঞ্চিত পদ্ধতিগুলি মূলত আপনার বেসিক সিআরইউডির সাথে সম্পর্কিত রক্ষণাবেক্ষণগুলি ডাউনসাইড সহ আসে অপারেশনের । আসুন প্রতিটি টেবিলে আপনার একটি সন্নিবেশ, আপডেট, মুছুন এবং প্রাথমিক কী এর উপর ভিত্তি করে কমপক্ষে একটি নির্বাচন করুন, তার অর্থ প্রতিটি টেবিলে 4 টি পদ্ধতি থাকবে। এখন 400 টেবিলের একটি শালীন আকারের ডাটাবেস নিন এবং আপনার 1600 পদ্ধতি রয়েছে! এবং এটি ধরে নিয়েছে যে আপনার কাছে এমন নকল নেই যা সম্ভবত আপনি পাবেন।

এখানে আপনার ORC বা অন্য কোনও পদ্ধতি ব্যবহার করে আপনার বুনিয়াদি সিআরইউডি ক্রিয়াকলাপটি স্বয়ংক্রিয়ভাবে উত্পন্ন করতে এক টন যোগ্যতা রয়েছে।


1
আপনি ডেটা পড়ার জন্য স্টোরড পদ্ধতি এবং অপারেশনগুলি ORMপছন্দ Entity Frameworkকরতে চান CRUD?
shaijut

2
হ্যাঁ এটি একটি সম্ভাব্য পন্থা। আমরা প্রতিবেদনগুলি
ছাড়াও ORM গুলি

সঞ্চিত প্রক্রিয়া সম্পর্কে আরও বিশদ জানতে আপনি আমার ইউআরএল techflirt.com/mysql-stored-procedure-tutorial টি
অঙ্কুর কুমার সিং

150

একটি সঞ্চিত পদ্ধতি হ'ল প্রাকম্পম্পাইল এসকিউএল স্টেটমেন্টগুলির একটি সেট যা একটি বিশেষ কার্য সম্পাদন করতে ব্যবহৃত হয়।

উদাহরণ: আমার যদি একটি Employeeটেবিল থাকে

Employee ID  Name       Age  Mobile
---------------------------------------
001          Sidheswar  25   9938885469
002          Pritish    32   9178542436

প্রথমে আমি Employeeটেবিলটি পুনরুদ্ধার করছি :

Create Procedure Employee details
As
Begin
    Select * from Employee
End

এসকিউএল সার্ভারে পদ্ধতিটি চালানোর জন্য:

Execute   Employee details

--- (Employee details is a user defined name, give a name as you want)

তারপরে দ্বিতীয়, আমি কর্মী সারণীতে মানটি প্রবেশ করিয়ে দিচ্ছি

Create Procedure employee_insert
    (@EmployeeID int, @Name Varchar(30), @Age int, @Mobile int)
As
Begin
    Insert Into Employee
    Values (@EmployeeID, @Name, @Age, @Mobile)
End

এসকিউএল সার্ভারে প্যারামিট্রাইজড পদ্ধতিটি চালানোর জন্য:

Execute employee_insert 003,’xyz’,27,1234567890

  --(Parameter size must be same as declared column size)

উদাহরণ: @Name Varchar(30)

ইন Employeeটেবিল Nameকলামের আকার হতে হবে varchar(30)


1
উদাহরণস্বরূপ এটি বুঝতে সহজ
হাফিজ উমর

80

একটি সঞ্চিত পদ্ধতি হ'ল এসকিউএল স্টেটমেন্টগুলির একটি গোষ্ঠী যা ডেটাবেসে তৈরি এবং সংরক্ষণ করা হয়েছিল। একটি সঞ্চিত পদ্ধতি ইনপুট পরামিতিগুলি গ্রহণ করবে যাতে একক পদ্ধতিটি বিভিন্ন ইনপুট ডেটা ব্যবহার করে বেশ কয়েকটি ক্লায়েন্টের দ্বারা নেটওয়ার্কে ব্যবহার করা যায়। সঞ্চিত পদ্ধতিগুলি নেটওয়ার্ক ট্র্যাফিককে হ্রাস করবে এবং কার্যকারিতা বাড়িয়ে তুলবে। আমরা যদি একটি সঞ্চিত পদ্ধতিটি পরিবর্তন করি তবে সমস্ত ক্লায়েন্ট আপডেট হওয়া সঞ্চিত পদ্ধতিটি পেয়ে যাবে।

সঞ্চিত পদ্ধতি তৈরির নমুনা

CREATE PROCEDURE test_display
AS
    SELECT FirstName, LastName
    FROM tb_test;

EXEC test_display;

সঞ্চিত পদ্ধতি ব্যবহারের সুবিধা

  • একটি সঞ্চিত পদ্ধতি মডিউলার প্রোগ্রামিংয়ের অনুমতি দেয়।

    আপনি একবারে পদ্ধতিটি তৈরি করতে পারেন, এটি ডাটাবেসে সঞ্চয় করতে পারেন এবং আপনার প্রোগ্রামে যেকোন বার কল করতে পারেন।

  • একটি সঞ্চিত পদ্ধতি দ্রুত কার্যকরকরণের অনুমতি দেয়।

    যদি ক্রিয়াকলাপে পুনরাবৃত্তি সঞ্চালিত হয় এমন প্রচুর পরিমাণে এসকিউএল কোডের প্রয়োজন হয়, সঞ্চিত পদ্ধতিগুলি দ্রুততর হতে পারে। যখন তারা প্রথম সম্পাদন করা হয় তখন এগুলি পার্স এবং অপ্টিমাইজ করা হয় এবং সঞ্চিত পদ্ধতির সংকলিত সংস্করণ পরে ব্যবহারের জন্য মেমরি ক্যাশে থাকে। এর অর্থ হ'ল সঞ্চিত পদ্ধতিটি প্রতিটি ব্যবহারের সাথে পুনরায় বিতরণ এবং পুনরায় চালু করার প্রয়োজন হয় না, ফলস্বরূপ দ্রুত সঞ্চালনের সময়গুলি খুব দ্রুত ঘটে।

  • সঞ্চিত পদ্ধতিটি নেটওয়ার্ক ট্র্যাফিককে হ্রাস করতে পারে।

    নেটওয়ার্কের মাধ্যমে কয়েকশ লাইন কোডের প্রেরণ না করে একটি ক্রিয়াকলাপে কোডটি কার্যকর করে এমন একক স্টেটমেন্টের মাধ্যমে ট্রানজ্যাক্ট-এসকিউএল কোডের কয়েকশ লাইনের প্রয়োজন থাকা একটি ক্রিয়াকলাপ সম্পাদন করা যেতে পারে।

  • সঞ্চিত পদ্ধতিগুলি আপনার ডেটাতে আরও ভাল সুরক্ষা সরবরাহ করে

    ব্যবহারকারীদের সরাসরি প্রক্রিয়াটির বিবৃতি সরাসরি কার্যকর করার অনুমতি না থাকলেও কোনও সঞ্চিত প্রক্রিয়া সম্পাদন করার অনুমতি দেওয়া যেতে পারে।

    এসকিউএল সার্ভারে আমাদের বিভিন্ন ধরণের সঞ্চিত পদ্ধতি রয়েছে:

    • সিস্টেম সঞ্চিত পদ্ধতি
    • ব্যবহারকারীর সংজ্ঞায়িত সঞ্চিত পদ্ধতি procedures
    • বর্ধিত সঞ্চিত প্রক্রিয়া
  • সিস্টেম- সজ্জিত পদ্ধতিগুলি মাস্টার ডাটাবেসে সংরক্ষণ করা হয় এবং এগুলি একটি sp_উপসর্গ দিয়ে শুরু হয় । এই পদ্ধতিগুলি সিস্টেম টেবিলগুলিতে বহিরাগত অ্যাপ্লিকেশন কলগুলির জন্য এসকিউএল সার্ভার ফাংশন সমর্থন করার জন্য বিভিন্ন কার্য সম্পাদন করতে ব্যবহার করা যেতে পারে

    উদাহরণ: sp_helptext [সঞ্চিতপ্রসারণ_নাম]

  • ব্যবহারকারীর সংজ্ঞায়িত সঞ্চিত পদ্ধতিগুলি সাধারণত একটি ব্যবহারকারী ডাটাবেজে সংরক্ষণ করা হয় এবং সাধারণত ব্যবহারকারী ডাটাবেজে কাজগুলি সম্পূর্ণ করার জন্য ডিজাইন করা হয়। যদিও কোডিং এই পদ্ধতি ব্যবহার করবেন নাsp_ প্রিফিক্স কারন যদি আমরা ব্যবহার sp_উপসর্গ প্রথমত, এটা মাস্টার ডাটাবেসের চেক করবে, এবং তারপর এটি ব্যবহারকারীর সংজ্ঞায়িত ডাটাবেসের সাথে আসে।

  • বর্ধিত সঞ্চিত পদ্ধতি হ'ল প্রক্রিয়া যা ডিএলএল ফাইলগুলি থেকে ফাংশন কল করে। আজকাল, বর্ধিত সঞ্চিত প্রক্রিয়াগুলি বর্ধিত সঞ্চিত প্রক্রিয়াগুলি ব্যবহার করা এড়ানো ভাল reason


37

সাধারণত, সঞ্চিত পদ্ধতিটি একটি "এসকিউএল ফাংশন"। তাদের আছে:

-- a name
CREATE PROCEDURE spGetPerson
-- parameters
CREATE PROCEDURE spGetPerson(@PersonID int)
-- a body
CREATE PROCEDURE spGetPerson(@PersonID int)
AS
SELECT FirstName, LastName ....
FROM People
WHERE PersonID = @PersonID

এটি একটি টি-এসকিউএল কেন্দ্রিক উদাহরণ। সঞ্চিত পদ্ধতিগুলি বেশিরভাগ এসকিউএল স্টেটমেন্টগুলি, রিটার্ন স্কেলার এবং টেবিল-ভিত্তিক মানগুলি কার্যকর করতে পারে এবং এটিকে আরও সুরক্ষিত বলে মনে করা হয় কারণ তারা এসকিউএল ইঞ্জেকশন আক্রমণগুলিকে প্রতিরোধ করে।


16

এরকম পরিস্থিতি নিয়ে ভাবুন,

  • আপনার কাছে ডেটা সহ একটি ডাটাবেস রয়েছে।
  • সেই কেন্দ্রীয় ডাটাবেস অ্যাক্সেস করার জন্য বিভিন্ন সংখ্যক অ্যাপ্লিকেশন প্রয়োজন রয়েছে এবং ভবিষ্যতেও কিছু নতুন অ্যাপ্লিকেশন রয়েছে।
  • আপনি যদি প্রতিটি ডাটাবেসের কোড পৃথকভাবে কেন্দ্রীয় ডাটাবেস অ্যাক্সেস করতে ইনলাইন ডাটাবেস প্রশ্নগুলি সন্নিবেশ করতে যাচ্ছেন, তবে সম্ভবত আপনাকে একই অ্যাপ্লিকেশনটির কোডটি বার বার নকল করতে হবে বিভিন্ন অ্যাপ্লিকেশন কোডের মধ্যে।
  • এই জাতীয় পরিস্থিতিতে আপনি সঞ্চিত পদ্ধতি (এসপি) ব্যবহার করতে পারেন। সঞ্চিত পদ্ধতি সহ, আপনি প্রচুর সাধারণ প্রশ্নগুলি (প্রক্রিয়াগুলি) লিখছেন এবং সেগুলি কেন্দ্রীয় ডাটাবেসের সাথে সঞ্চয় করছেন।
  • এখন কাজের সদৃশ আর আগের মতো ঘটবে না এবং ডেটা অ্যাক্সেস এবং রক্ষণাবেক্ষণ কেন্দ্রীয়ভাবে করা হবে।

বিঃদ্রঃ:

  • উপরের পরিস্থিতিতে আপনি ভাবতে পারেন "কেন আমরা সমস্ত অ্যাপ্লিকেশনগুলির সাথে ইন্টারেক্ট করার জন্য একটি কেন্দ্রীয় ডেটা অ্যাক্সেস সার্ভার চালু করতে পারি না? হ্যাঁ। এটি একটি সম্ভাব্য বিকল্প হতে পারে। তবে,
  • এসিপিগুলির সাথে এই পদ্ধতির মূল সুবিধাটি হ'ল ইনলাইন প্রশ্নের সাথে আপনার ডেটা-অ্যাক্সেস-কোডের বিপরীতে, এসপি হ'ল প্রাক-সংকলিত বিবৃতি, তাই তারা দ্রুত সম্পাদন করবে। এবং যোগাযোগের ব্যয় (ওভার নেটওয়ার্ক) সর্বনিম্ন হবে।
  • এর বিপরীতে, এসপিরা ডাটাবেস সার্ভারে আরও কিছু লোড যুক্ত করবে। যদি পরিস্থিতি অনুসারে এটি উদ্বেগের বিষয় হয়ে থাকে তবে ইনলাইন ক্যোয়ারী সহ একটি কেন্দ্রীভূত ডেটা অ্যাক্সেস সার্ভার আরও ভাল পছন্দ হবে।

9

একটি সঞ্চিত প্রক্রিয়াটি মূলত একটি ডেটাবেজে কিছু নির্দিষ্ট কার্য সম্পাদন করতে ব্যবহৃত হয়। উদাহরণ স্বরূপ

  • ডেটাতে কিছু ব্যবসায়িক যুক্তি থেকে ডাটাবেস ফলাফল সেট পান।
  • একক কলে একাধিক ডাটাবেস ক্রিয়াকলাপ চালান।
  • এক টেবিল থেকে অন্য টেবিলে ডেটা স্থানান্তর করতে ব্যবহৃত হয়।
  • জাভা এর মতো অন্যান্য প্রোগ্রামিং ভাষার জন্যও ডাকা যেতে পারে।

7

একটি সঞ্চিত পদ্ধতিটি এসকিউএল বিবৃতিগুলির একটি গোষ্ঠী ছাড়া একক বাস্তবায়ন পরিকল্পনায় সংকলিত কিছুই নয়।

  1. একবারে তৈরি করুন এবং এটিকে এন নাম্বারে কল করুন
  2. এটি নেটওয়ার্ক ট্র্যাফিককে হ্রাস করে

উদাহরণ: একটি সঞ্চিত পদ্ধতি তৈরি করা

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE GetEmployee
      @EmployeeID int = 0
AS
BEGIN
      SET NOCOUNT ON;

      SELECT FirstName, LastName, BirthDate, City, Country
      FROM Employees 
      WHERE EmployeeID = @EmployeeID
END
GO

একটি সঞ্চিত পদ্ধতি পরিবর্তন বা সংশোধন করুন:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE GetEmployee
      @EmployeeID int = 0
AS
BEGIN
    SET NOCOUNT ON;

    SELECT FirstName, LastName, BirthDate, City, Country
    FROM Employees 
    WHERE EmployeeID = @EmployeeID
END
GO

সঞ্চিত পদ্ধতিটি ড্রপ বা মুছুন:

DROP PROCEDURE GetEmployee

6

ডেটাবেস টেবিলের ডেটা পুনরুদ্ধার, ডেটা সংশোধন এবং ডেটা মুছতে একটি সঞ্চিত পদ্ধতি ব্যবহার করা হয়। আপনি যখন কোনও এসকিউএল ডাটাবেসে ডেটা ,োকাতে, আপডেট করতে বা মুছতে চান তখন আপনাকে একটি সম্পূর্ণ এসকিউএল কমান্ড লেখার দরকার নেই।


4
  • একটি সঞ্চিত পদ্ধতি হ'ল এক বা একাধিক এসকিউএল স্টেটমেন্টের একটি পূর্বনির্ধারিত সেট যা কিছু নির্দিষ্ট কাজ সম্পাদন করে।

  • একটি সঞ্চিত পদ্ধতি ব্যবহার করে একা একা চালানো উচিত EXEC

  • একটি সঞ্চিত পদ্ধতি একাধিক পরামিতি ফিরে আসতে পারে

  • লেনদেন বাস্তবায়নের জন্য একটি সঞ্চিত পদ্ধতি ব্যবহার করা যেতে পারে


4

"সঞ্চিত পদ্ধতি কী" এর উত্তর এখানে ইতিমধ্যে দেওয়া হয়েছে। আমি যা পোস্ট করব তা হ'ল সঞ্চিত পদ্ধতি ব্যবহারের একটি কম জ্ঞাত উপায়। এটা হয় grouping stored proceduresবা numbering stored procedures

সিনট্যাক্স রেফারেন্স

এখানে চিত্র বর্ণনা লিখুন

; numberঅনুযায়ী এই

Optionচ্ছিক পূর্ণসংখ্যা যা একই নামের গ্রুপ পদ্ধতিতে ব্যবহৃত হয়। এই গ্রুপযুক্ত পদ্ধতিগুলি একটি ড্রপ প্রক্রিয়া বিবৃতি ব্যবহার করে একসাথে বাদ দেওয়া যেতে পারে

উদাহরণ

CREATE Procedure FirstTest 
(
    @InputA INT
)
AS 
BEGIN
    SELECT 'A' + CONVERT(VARCHAR(10),@InputA)
END
GO

CREATE Procedure FirstTest;2
(
    @InputA INT,
    @InputB INT
)
AS 
BEGIN
    SELECT 'A' + CONVERT(VARCHAR(10),@InputA)+ CONVERT(VARCHAR(10),@InputB)
END
GO

ব্যবহার

exec FirstTest 10
exec FirstTest;2 20,30

ফলাফল

এখানে চিত্র বর্ণনা লিখুন

অন্য একটি প্রচেষ্টা

CREATE Procedure SecondTest;2
(
     @InputA INT,
    @InputB INT
)
AS 
BEGIN
    SELECT 'A' + CONVERT(VARCHAR(10),@InputA)+ CONVERT(VARCHAR(10),@InputB)
END
GO

ফলাফল

এমএসজি 2730, স্তর 11, রাজ্য 1, পদ্ধতি দ্বিতীয় টেস্ট, লাইন 1 [ব্যাচ স্টার্ট লাইন 3] 2 এর একটি গ্রুপ সংখ্যা সহ পদ্ধতি 'সেকেন্ড টেস্ট' তৈরি করতে পারে না কারণ একই নাম এবং 1 এর গ্রুপ সংখ্যা সহ একটি পদ্ধতি বর্তমানে বিদ্যমান নেই ডাটাবেস প্রথমে ক্রিট প্রক্রিয়া 'সেকেন্ড টেস্ট' চালিত করতে হবে;

তথ্যসূত্র :

  1. সংখ্যার জন্য সিনট্যাক্স সহ প্রক্রিয়া তৈরি করুন
  2. এসকিউএল সার্ভারে নম্বরযুক্ত সঞ্চিত প্রক্রিয়া - techie-friendly.blogspot.com
  3. গোষ্ঠীবদ্ধ সঞ্চিত পদ্ধতি - sqlmag

সতর্ক করা

  1. প্রক্রিয়াগুলিকে গোষ্ঠীভুক্ত করার পরে, আপনি সেগুলি পৃথকভাবে বাদ দিতে পারবেন না।
  2. এই বৈশিষ্ট্যটি মাইক্রোসফ্ট এসকিউএল সার্ভারের ভবিষ্যতের সংস্করণে সরানো যেতে পারে।

0

একটি সঞ্চিত পদ্ধতি হ'ল এসকিউএল স্টেটমেন্ট এবং পদ্ধতিগত যুক্তির একটি নামযুক্ত সংগ্রহ, যা সংকলিত, যাচাই করা হয়েছে এবং সার্ভার ডাটাবেসে সঞ্চিত। একটি সঞ্চিত পদ্ধতিটি সাধারণত অন্যান্য ডাটাবেস অবজেক্টের মতো আচরণ করা হয় এবং সার্ভার সুরক্ষা ব্যবস্থার মাধ্যমে নিয়ন্ত্রণ করা হয়।


0

একটি ডিবিএমএসে, একটি সঞ্চিত পদ্ধতি হ'ল এসকিউএল স্টেটমেন্টগুলির একটি সেট করা নাম সহ যা সংকলিত আকারে ডাটাবেসে সঞ্চিত থাকে যাতে এটি বেশ কয়েকটি প্রোগ্রামের মাধ্যমে ভাগ করা যায়।

সঞ্চিত পদ্ধতি ব্যবহারে সহায়ক হতে পারে

  1. ডেটাতে নিয়ন্ত্রিত অ্যাক্সেস সরবরাহ করা (শেষ ব্যবহারকারীরা কেবল ডেটা প্রবেশ বা পরিবর্তন করতে পারবেন তবে পদ্ধতিগুলি লিখতে পারবেন না)

  2. ডেটা অখণ্ডতা নিশ্চিতকরণ (ডেটা ধারাবাহিকভাবে প্রবেশ করা হবে) এবং

  3. উত্পাদনশীলতা উন্নত করে (সঞ্চিত পদ্ধতির বিবৃতি কেবল একবার লিখতে হবে)


0

সহজ জন্য,

সঞ্চিত পদ্ধতি করছে প্রোগ্রাম সংরক্ষিত , একটি প্রোগ্রাম / ফাংশন ডাটাবেসের মধ্যে সংরক্ষণ করা হয়।

প্রতিটি সঞ্চিত প্রোগ্রামে একটি শরীর থাকে যা একটি এসকিউএল বিবৃতি ধারণ করে। এই বিবৃতিটি সেমিকোলন (;) অক্ষর দ্বারা পৃথক পৃথক বিবৃতি নিয়ে গঠিত যৌগিক বিবৃতি হতে পারে।

CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
  SET @x = 0;
  REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END;

0

এসকিউএল সার্ভারে সঞ্চিত পদ্ধতিগুলি ইনপুট পরামিতিগুলি গ্রহণ করতে এবং আউটপুট প্যারামিটারের একাধিক মান প্রদান করতে পারে; এসকিউএল সার্ভারে, ডাটাবেসটিতে ক্রিয়াকলাপ সম্পাদন করতে এবং কলিং পদ্ধতি বা ব্যাচের স্থিতির মান ফিরিয়ে আনার জন্য কার্যপ্রণালী প্রোগ্রামের বিবৃতি সঞ্চিত করে।

এসকিউএল সার্ভারে সঞ্চিত পদ্ধতি ব্যবহারের সুবিধা

তারা মডিউলার প্রোগ্রামিংয়ের অনুমতি দেয়। তারা দ্রুত কার্যকর করার অনুমতি দেয় allow তারা নেটওয়ার্ক ট্র্যাফিক হ্রাস করতে পারে। এগুলি সুরক্ষা ব্যবস্থা হিসাবে ব্যবহার করা যেতে পারে।

এখানে সঞ্চিত পদ্ধতির উদাহরণ যা প্যারামিটার নেয়, একটি ক্যোয়ারী চালায় এবং ফলাফলটি ফেরত দেয়। বিশেষত, সঞ্চিত পদ্ধতিটি BusinessEntityID কে প্যারামিটার হিসাবে গ্রহণ করে এবং অনুরোধকৃত কর্মীকে ফিরিয়ে দেওয়ার জন্য হিউম্যানআরসোর্সেস -Employee টেবিলের প্রাথমিক কীটির সাথে মেলে এটি ব্যবহার করে।

> create procedure HumanResources.uspFindEmployee    `*<<<---Store procedure name`*
@businessEntityID                                     `<<<----parameter`
as
begin
SET NOCOUNT ON;
Select businessEntityId,              <<<----select statement to return one employee row
NationalIdNumber,
LoginID,
JobTitle,
HireData,
From HumanResources.Employee
where businessEntityId =@businessEntityId     <<<---parameter used as criteria
end

আমি এটি প্রয়োজনীয় ডটকম থেকে শিখেছি ... এটি খুব দরকারী।


0

সঞ্চিত পদ্ধতি আপনাকে সার্ভারে কোড তৈরি করতে সহায়তা করবে para আপনি পরামিতিগুলি পাস করতে পারেন এবং আউটপুট খুঁজে পেতে পারেন।

create procedure_name (para1 int,para2 decimal)
as
select * from TableName

0

সজ্জিত পদ্ধতিতে বিবৃতি কেবল একবার লেখা হয় এবং ক্লায়েন্ট এবং সার্ভারের মধ্যে নেটওয়ার্ক ট্র্যাফিক হ্রাস করে। আমরা এসকিএল ইনজেকশন আক্রমণগুলি এড়াতে পারি।

  • যদি আপনি পেমেন্ট প্রসেসিংয়ের জন্য আপনার অ্যাপ্লিকেশনটিতে কোনও তৃতীয় পক্ষের প্রোগ্রাম ব্যবহার করছেন, তবে এখানে ডাটাবেসটিকে প্রয়োজনীয় তথ্য এবং তৃতীয় পক্ষটি অনুমোদিত তত্পরতা প্রকাশ করা উচিত, এর দ্বারা আমরা সঞ্চিত পদ্ধতি ব্যবহার করে অনুমতি নির্ধারণের মাধ্যমে ডেটা গোপনীয়তা অর্জন করতে পারি।
  • সারণীর আপডেটটি কেবলমাত্র সেই টেবিলের উদ্দেশ্যে করা উচিত যা এটি লক্ষ্যবস্তু রয়েছে তবে এটি অন্য কোনও টেবিলটি আপডেট করা উচিত নয়, যার মাধ্যমে আমরা লেনদেন প্রক্রিয়াজাতকরণ এবং ত্রুটি পরিচালনার সাহায্যে ডেটা অখণ্ডতা অর্জন করতে পারি।
  • আপনি যদি ডেটা টাইপের সাহায্যে এক বা একাধিক আইটেম ফিরে আসতে চান তবে আউটপুট প্যারামিটার ব্যবহার করা ভাল।
  • সঞ্চিত পদ্ধতিতে আমরা যে কোনও জিনিস ফেরত দিতে হবে তার জন্য একটি আউটপুট প্যারামিটার ব্যবহার করি। আপনি যদি কেবলমাত্র একটি পূর্ণসংখ্যার ডেটা টাইপ দিয়ে একটি আইটেম ফিরে আসতে চান তবে ফেরতের মানটি আরও ভাল ব্যবহার করুন। প্রকৃতপক্ষে রিটার্ন মানটি কেবল সঞ্চিত পদ্ধতিটির সাফল্য বা ব্যর্থতা অবহিত করতে হয়।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.