ЁЯПк Stored Procedure vs Function - Working Demo

рднрд┐рдбреЗ рдФрд░ рдЬреЗрдард╛рд▓рд╛рд▓ рдХреЗ рд╕рд╛рде Live Database Experience

рднрд┐рдбреЗ:
рдЬреЗрдард╛рд▓рд╛рд▓! рдпреЗ Stored Procedure рдФрд░ Function рдХреНрдпрд╛ рдмрд▓рд╛ рд╣реИ? Demo рджреЗрдХрд░ рд╕рдордЭрд╛рдУ!
рдЬреЗрдард╛рд▓рд╛рд▓:
рдЕрд░реЗ рднрд┐рдбреЗ! рдЪрд▓ рддреБрдЭреЗ live demo рджреЗрддрд╛ рд╣реВрдВред рджреЗрдЦ, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ bank database рдмрдирд╛рдпрд╛ рд╣реИред рдЕрдм рддреВ рдЦреБрдж try рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Stored Procedure рдФрд░ Function рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рднрд┐рдбреЗ:
рд╡рд╛рд╣! рддреЛ рдореИрдВ actual database рдХреЗ рд╕рд╛рде experiment рдХрд░ рд╕рдХреВрдВрдЧрд╛?
рдЬреЗрдард╛рд▓рд╛рд▓:
рдмрд┐рд▓реНрдХреБрд▓! Database Tab рдореЗрдВ data рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ, Procedure Demo рдореЗрдВ money transfer рдХрд░ рд╕рдХрддрд╛ рд╣реИ, Function Demo рдореЗрдВ bonus calculate рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ Performance Tab рдореЗрдВ speed comparison рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред

ЁЯПж Bank Database Tables

рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ demo database рдХреЗ tables рд╣реИрдВ:

ЁЯСе Accounts Table

Account ID Name Balance Type

ЁЯТ╝ Employees Table

Employee ID Name Salary Performance

ЁЯУК Transaction History

Transaction ID From Account To Account Amount Status Timestamp

ЁЯФз Stored Procedure Demo - Money Transfer

рдпрд╣рд╛рдБ рдЖрдк actual money transfer procedure рдХреЛ run рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

ЁЯТ░ Transfer Money

ЁЯУЭ Stored Procedure Code

CREATE PROCEDURE TransferMoney( @FromAccount INT, @ToAccount INT, @Amount DECIMAL(10,2) ) AS BEGIN BEGIN TRANSACTION DECLARE @FromBalance DECIMAL(10,2) SELECT @FromBalance = Balance FROM Accounts WHERE AccountID = @FromAccount IF @FromBalance >= @Amount BEGIN UPDATE Accounts SET Balance = Balance - @Amount WHERE AccountID = @FromAccount UPDATE Accounts SET Balance = Balance + @Amount WHERE AccountID = @ToAccount INSERT INTO Transactions VALUES( @FromAccount, @ToAccount, @Amount, 'Success', GETDATE() ) COMMIT TRANSACTION RETURN 1 -- Success END ELSE BEGIN ROLLBACK TRANSACTION RETURN 0 -- Failed END END

Execute transfer рдХреЛ click рдХрд░реЗрдВ procedure run рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП...

тЪб Function Demo - Bonus Calculator

рдпрд╣рд╛рдБ рдЖрдк employee bonus calculate рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ function try рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

ЁЯОп Calculate Bonus

ЁЯУЭ Function Code

CREATE FUNCTION CalculateBonus( @Salary DECIMAL(10,2), @Performance INT ) RETURNS DECIMAL(10,2) AS BEGIN DECLARE @Bonus DECIMAL(10,2) IF @Performance >= 90 SET @Bonus = @Salary * 0.20 -- 20% ELSE IF @Performance >= 80 SET @Bonus = @Salary * 0.15 -- 15% ELSE IF @Performance >= 70 SET @Bonus = @Salary * 0.10 -- 10% ELSE IF @Performance >= 60 SET @Bonus = @Salary * 0.05 -- 5% ELSE SET @Bonus = 0 -- No bonus RETURN @Bonus END -- Usage Example: SELECT Name, Salary, dbo.CalculateBonus(Salary, Performance) as Bonus FROM Employees

Calculate Bonus рдХреЛ click рдХрд░реЗрдВ function run рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП...

ЁЯУК All Employees Bonus Report

ЁЯУК Performance Comparison

рджреЗрдЦрд┐рдП рдХрд┐ Stored Procedure рдФрд░ Function рдХрд┐рддрдиреЗ fast рд╣реИрдВ:

Regular Query

2.5s
Average Execution Time
Slow

Function

1.8s
Average Execution Time
Medium

Stored Procedure

1.2s
Average Execution Time
Fast

ЁЯзк Performance Test

Click рдХрд░реЗрдВ live performance test run рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

Performance test рдХреЗ results рдпрд╣рд╛рдБ рдЖрдПрдВрдЧреЗ...

ЁЯТб рдЬреЗрдард╛рд▓рд╛рд▓ explains Performance:

рдЬреЗрдард╛рд▓рд╛рд▓:
рднрд┐рдбреЗ, рджреЗрдЦ performance рдХрд╛ рдорддрд▓рдм:

ЁЯФз Stored Procedure рд╕рдмрд╕реЗ fast рдХреНрдпреЛрдВ?
тАв Pre-compiled рд╣реЛрддреЗ рд╣реИрдВ
тАв Execution plan ready рд░рд╣рддрд╛ рд╣реИ
тАв Network traffic рдХрдо
тАв Memory рдореЗрдВ cached рд░рд╣рддреЗ рд╣реИрдВ

тЪб Function рдХрдм use рдХрд░реЗрдВ?
тАв рдЫреЛрдЯреЗ calculations рдХреЗ рд▓рд┐рдП
тАв SELECT statements рдореЗрдВ
тАв Reusable logic рдХреЗ рд▓рд┐рдП

ЁЯУЭ Regular Query рдХреНрдпреЛрдВ slow?
тАв рд╣рд░ рдмрд╛рд░ compile рд╣реЛрддреА рд╣реИ
тАв Execution plan рдмрдирддрд╛ рд╣реИ
тАв Network рдкрд░ рдкреВрд░реА query рднреЗрдЬрдиреА рдкрдбрд╝рддреА рд╣реИ