Ms sql ಸರ್ವರ್ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು. SQL ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳು. ಉದಾಹರಣೆಗಳಿಗಾಗಿ ಮೂಲ ಡೇಟಾ

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಪ್ರಶ್ನೆಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಕುಗ್ಗಿಸುವ ಪರಿಸ್ಥಿತಿಯನ್ನು ನಾವು ಪರಿಗಣಿಸುತ್ತೇವೆ.


MS SQL ಸರ್ವರ್ 2000 ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕಂಪೈಲ್ ಮಾಡುವಾಗ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕಾರ್ಯವಿಧಾನದ ಸಂಗ್ರಹದಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ, ಅಗತ್ಯವನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ಅವುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಬಹುದು ಪಾರ್ಸಿಂಗ್, ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನದ ಕೋಡ್‌ನ ಆಪ್ಟಿಮೈಸೇಶನ್ ಮತ್ತು ಸಂಕಲನ.
ಮತ್ತೊಂದೆಡೆ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ಸಂಕಲನ ಕೋಡ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುವಲ್ಲಿ ಮೋಸಗಳಿವೆ, ಅದು ವಿರುದ್ಧ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿರುತ್ತದೆ.
ಸಂಗತಿಯೆಂದರೆ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕಂಪೈಲ್ ಮಾಡುವಾಗ, ಕಾರ್ಯವಿಧಾನದ ಕೋಡ್ ಅನ್ನು ರೂಪಿಸುವ ಆ ಆಪರೇಟರ್‌ಗಳ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಪ್ಲಾನ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಕಂಪೈಲ್ ಮಾಡಿದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಸಂಗ್ರಹಿಸಿದರೆ, ಅದರ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಯೋಜನೆಯನ್ನು ಸಹ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನವು ಆಗುವುದಿಲ್ಲ. ಹೊಂದುವಂತೆ ನಿರ್ದಿಷ್ಟ ಪರಿಸ್ಥಿತಿಮತ್ತು ಪ್ರಶ್ನೆ ನಿಯತಾಂಕಗಳು.
ಇದನ್ನು ಪ್ರದರ್ಶಿಸಲು ಒಂದು ಸಣ್ಣ ಪ್ರಯೋಗವನ್ನು ಮಾಡೋಣ.

ಹಂತ 1. ಡೇಟಾಬೇಸ್ ರಚಿಸಲಾಗುತ್ತಿದೆ.
ಪ್ರಯೋಗಕ್ಕಾಗಿ, ನಾವು ಪ್ರತ್ಯೇಕ ಡೇಟಾಬೇಸ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ.

ಡೇಟಾಬೇಸ್ test_sp_perf ರಚಿಸಿ
ಆನ್ (NAME="test_data", FILENAME="c:\temp\test_data", SIZE=1, MAXSIZE=10,FILEGROWTH=1Mb)
ಲಾಗ್ ಆನ್ ಮಾಡಿ (NAME="test_log", FILENAME="c:\temp\test_log", SIZE=1, MAXSIZE=10,FILEGROWTH=1Mb)

ಹಂತ 2.ಟೇಬಲ್ ರಚಿಸಲಾಗುತ್ತಿದೆ.
ಟೇಬಲ್ sp_perf_test (ಕಾಲಮ್ 1 ಇಂಟ್, ಕಾಲಮ್ 2 ಅಕ್ಷರ (5000)) ರಚಿಸಿ

ಹಂತ 3.ಪರೀಕ್ಷಾ ಸಾಲುಗಳೊಂದಿಗೆ ಟೇಬಲ್ ತುಂಬುವುದು. ನಕಲಿ ಸಾಲುಗಳನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಟೇಬಲ್‌ಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. 1 ರಿಂದ 10,000 ರವರೆಗಿನ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ 10,000 ಸಾಲುಗಳು ಮತ್ತು 50,000 ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ 10,000 ಸಾಲುಗಳು.

@i ಇಂಟ್ ಅನ್ನು ಘೋಷಿಸಿ
@i=1 ಹೊಂದಿಸಿ
ಅದೇ ಸಮಯದಲ್ಲಿ(@i<10000)
ಆರಂಭಿಸಲು
sp_perf_test (ಕಾಲಮ್1, ಕಾಲಮ್2) ಮೌಲ್ಯಗಳಿಗೆ ಸೇರಿಸಿ (@i,"ಟೆಸ್ಟ್ ಸ್ಟ್ರಿಂಗ್ #"+CAST(@i ಚಾರ್ (8)))
sp_perf_test (ಕಾಲಮ್1, ಕಾಲಮ್2) ಮೌಲ್ಯಗಳಿಗೆ ಸೇರಿಸಿ (50000,"ಟೆಸ್ಟ್ ಸ್ಟ್ರಿಂಗ್ #"+CAST(@i ಚಾರ್ (8)))
@i= @i+1 ಹೊಂದಿಸಿ
ಅಂತ್ಯ

sp_perf_test ನಿಂದ COUNT(*) ಆಯ್ಕೆಮಾಡಿ
ಹೋಗು

ಹಂತ 4.ಕ್ಲಸ್ಟರ್ ಅಲ್ಲದ ಸೂಚ್ಯಂಕವನ್ನು ರಚಿಸುವುದು. ಎಕ್ಸಿಕ್ಯೂಶನ್ ಪ್ಲಾನ್ ಅನ್ನು ಕಾರ್ಯವಿಧಾನದೊಂದಿಗೆ ಸಂಗ್ರಹಿಸಲಾಗಿರುವುದರಿಂದ, ಎಲ್ಲಾ ಕರೆಗಳಲ್ಲಿ ಸೂಚ್ಯಂಕವನ್ನು ಒಂದೇ ರೀತಿಯಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.

sp_perf_test (ಕಾಲಮ್ 1) ನಲ್ಲಿ ಕ್ಲಸ್ಟರ್ಡ್ ಇಂಡೆಕ್ಸ್ CL_perf_test ಅನ್ನು ರಚಿಸಿ
ಹೋಗು

ಹಂತ 5.ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸುವುದು. ಕಾರ್ಯವಿಧಾನವು ಕೇವಲ ಒಂದು ಷರತ್ತನ್ನು ಹೊಂದಿರುವ SELECT ಹೇಳಿಕೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.

PROC proc1 ಅನ್ನು ರಚಿಸಿ (@param int)
AS
ಕಾಲಮ್1, ಕಾಲಮ್2 ಅನ್ನು sp_perf_test ಎಲ್ಲಿಂದ ಆಯ್ಕೆ ಮಾಡಿ ಕಾಲಮ್1=@ಪಾರಂ
ಹೋಗು

ಹಂತ 6.ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ನಡೆಸಲಾಗುತ್ತಿದೆ. ದುರ್ಬಲ ಕಾರ್ಯವಿಧಾನವನ್ನು ನಡೆಸುವಾಗ, ಆಯ್ದ ನಿಯತಾಂಕವನ್ನು ನಿರ್ದಿಷ್ಟವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಕಾರ್ಯವಿಧಾನದ ಪರಿಣಾಮವಾಗಿ, ನಾವು 1 ಸಾಲನ್ನು ಪಡೆಯುತ್ತೇವೆ. ಮರಣದಂಡನೆ ಯೋಜನೆಯು ಕ್ಲಸ್ಟರ್ ಅಲ್ಲದ ಸೂಚ್ಯಂಕದ ಬಳಕೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಪ್ರಶ್ನೆಯು ಆಯ್ದ ಮತ್ತು ಸಾಲನ್ನು ಹಿಂಪಡೆಯಲು ಇದು ಅತ್ಯುತ್ತಮ ಮಾರ್ಗವಾಗಿದೆ. ಒಂದೇ ಸಾಲನ್ನು ಪಡೆಯಲು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕಾರ್ಯವಿಧಾನದ ಸಂಗ್ರಹದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.

EXEC proc1 1234
ಹೋಗು

ಹಂತ 7.ಆಯ್ದವಲ್ಲದ ಪ್ಯಾರಾಮೀಟರ್‌ನೊಂದಿಗೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ರನ್ ಮಾಡಿ. ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ ಬಳಸಲಾದ ಮೌಲ್ಯವು 50000. ಮೊದಲ ಕಾಲಮ್‌ನಲ್ಲಿ ಈ ಮೌಲ್ಯದೊಂದಿಗೆ ಸುಮಾರು 10000 ಸಾಲುಗಳಿವೆ, ಆದ್ದರಿಂದ, ಕ್ಲಸ್ಟರ್ ಮಾಡದ ಸೂಚಿಯನ್ನು ಬಳಸುವುದು ಮತ್ತು ಬುಕ್‌ಮಾರ್ಕ್ ಲುಕಪ್ ಕಾರ್ಯಾಚರಣೆಯು ನಿಷ್ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ, ಆದರೆ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಪ್ಲಾನ್‌ನೊಂದಿಗೆ ಸಂಕಲಿಸಿದ ಕೋಡ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲಾಗಿದೆ. ಕಾರ್ಯವಿಧಾನದ ಸಂಗ್ರಹ, ಇದನ್ನೇ ಬಳಸಲಾಗುವುದು. ಮರಣದಂಡನೆ ಯೋಜನೆಯು ಇದನ್ನು ತೋರಿಸುತ್ತದೆ, ಜೊತೆಗೆ 9999 ಸಾಲುಗಳಿಗಾಗಿ ಬುಕ್ಮಾರ್ಕ್ ಲುಕಪ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಡೆಸಲಾಗಿದೆ ಎಂಬ ಅಂಶವನ್ನು ತೋರಿಸುತ್ತದೆ.

EXEC proc1 50000
ಹೋಗು

ಹಂತ 8. 50000 ಗೆ ಸಮಾನವಾದ ಮೊದಲ ಕ್ಷೇತ್ರದೊಂದಿಗೆ ಸಾಲುಗಳ ಆಯ್ಕೆಯನ್ನು ನಿರ್ವಹಿಸುವುದು. ಪ್ರತ್ಯೇಕ ಪ್ರಶ್ನೆಯನ್ನು ಚಲಾಯಿಸುವಾಗ, ಪ್ರಶ್ನೆಯನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಮೊದಲ ಕಾಲಮ್‌ಗೆ ನಿರ್ದಿಷ್ಟ ಮೌಲ್ಯದೊಂದಿಗೆ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ, ಕ್ವೆರಿ ಆಪ್ಟಿಮೈಜರ್ ಕ್ಷೇತ್ರವು ಹಲವು ಬಾರಿ ನಕಲು ಮಾಡಲ್ಪಟ್ಟಿದೆ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ ಮತ್ತು ಟೇಬಲ್ ಸ್ಕ್ಯಾನ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಬಳಸಲು ನಿರ್ಧರಿಸುತ್ತದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ಕ್ಲಸ್ಟರ್-ಅಲ್ಲದ ಸೂಚ್ಯಂಕವನ್ನು ಬಳಸುವುದಕ್ಕಿಂತ ಇದು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ.

ಕಾಲಮ್1, ಕಾಲಮ್2 ಅನ್ನು sp_perf_test ಎಲ್ಲಿಂದ ಆಯ್ಕೆ ಮಾಡಿ ಕಾಲಮ್1=50000
ಹೋಗು

ಹೀಗಾಗಿ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬಳಸುವುದು ಯಾವಾಗಲೂ ಪ್ರಶ್ನೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುವುದಿಲ್ಲ ಎಂದು ನಾವು ತೀರ್ಮಾನಿಸಬಹುದು. ವೇರಿಯಬಲ್ ಸಂಖ್ಯೆಯ ಸಾಲುಗಳೊಂದಿಗೆ ಫಲಿತಾಂಶಗಳ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮತ್ತು ವಿಭಿನ್ನ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಯೋಜನೆಗಳನ್ನು ಬಳಸುವ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳ ಬಗ್ಗೆ ನೀವು ಬಹಳ ಜಾಗರೂಕರಾಗಿರಬೇಕು.
ನಿಮ್ಮ MS SQL ಸರ್ವರ್‌ನಲ್ಲಿ ಪ್ರಯೋಗವನ್ನು ಪುನರಾವರ್ತಿಸಲು ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಬಹುದು.

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ - ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್, ಇದು SQL ಸೂಚನೆಗಳ ಒಂದು ಸೆಟ್ ಆಗಿದ್ದು ಅದನ್ನು ಒಮ್ಮೆ ಕಂಪೈಲ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಸರ್ವರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಸಾಮಾನ್ಯ ಉನ್ನತ ಮಟ್ಟದ ಭಾಷಾ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಹೋಲುತ್ತವೆ, ಅವು ಇನ್‌ಪುಟ್ ಮತ್ತು ಔಟ್‌ಪುಟ್ ನಿಯತಾಂಕಗಳನ್ನು ಮತ್ತು ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ಹೊಂದಬಹುದು, ಅವು ಅಕ್ಷರ ಡೇಟಾದಲ್ಲಿ ಸಂಖ್ಯಾ ಲೆಕ್ಕಾಚಾರಗಳು ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಬಹುದು, ಅದರ ಫಲಿತಾಂಶಗಳನ್ನು ವೇರಿಯಬಲ್‌ಗಳು ಮತ್ತು ನಿಯತಾಂಕಗಳಿಗೆ ನಿಯೋಜಿಸಬಹುದು. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಪ್ರಮಾಣಿತ ಡೇಟಾಬೇಸ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದು (ಡಿಡಿಎಲ್ ಮತ್ತು ಡಿಎಂಎಲ್ ಎರಡೂ). ಹೆಚ್ಚುವರಿಯಾಗಿ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಲೂಪ್ಗಳು ಮತ್ತು ಶಾಖೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಅಂದರೆ, ಅವರು ಮರಣದಂಡನೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿಯಂತ್ರಿಸಲು ಸೂಚನೆಗಳನ್ನು ಬಳಸಬಹುದು.

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯಗಳಿಗೆ (UDFs) ಹೋಲುತ್ತವೆ. ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯಗಳನ್ನು SQL ಹೇಳಿಕೆಯಲ್ಲಿ ಯಾವುದೇ ಇತರ ಅಭಿವ್ಯಕ್ತಿಯಂತೆ ಬಳಸಬಹುದು, ಆದರೆ ಸಂಗ್ರಹಿತ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕರೆ ಕಾರ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ಕರೆಯಬೇಕು:

ಕರೆ ವಿಧಾನ (...)

ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕಾರ್ಯವಿಧಾನ (...)

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಬಹು ಫಲಿತಾಂಶಗಳನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು, ಅಂದರೆ, SELECT ಪ್ರಶ್ನೆಯ ಫಲಿತಾಂಶಗಳು. ಅಂತಹ ಫಲಿತಾಂಶ ಸೆಟ್‌ಗಳನ್ನು ಕರ್ಸರ್‌ಗಳು, ಫಲಿತಾಂಶ ಸೆಟ್ ಪಾಯಿಂಟರ್ ಅನ್ನು ಹಿಂದಿರುಗಿಸುವ ಇತರ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಡೇಟಾ ಮತ್ತು ಕರ್ಸರ್‌ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಡಿಕ್ಲೇರ್ಡ್ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿರಬಹುದು, ಇದು ಟೇಬಲ್‌ನಲ್ಲಿ ಬಹು ಸಾಲುಗಳ ಮೇಲೆ ಲೂಪ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. SQL ಮಾನದಂಡವು IF, LOOP, REPEAT, CASE, ಮತ್ತು ಇತರರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಒದಗಿಸುತ್ತದೆ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಬಹುದು, ಫಲಿತಾಂಶಗಳನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು ಅಥವಾ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಮಾರ್ಪಡಿಸಬಹುದು ಮತ್ತು ವೇರಿಯೇಬಲ್ ಅನ್ನು ಎಲ್ಲಿ ಘೋಷಿಸಲಾಗಿದೆ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ಅವುಗಳನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು.

ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳ ಅನುಷ್ಠಾನವು ಒಂದು DBMS ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಬದಲಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ಪ್ರಮುಖ ಡೇಟಾಬೇಸ್ ಮಾರಾಟಗಾರರು ಅವುಗಳನ್ನು ಒಂದು ರೂಪದಲ್ಲಿ ಅಥವಾ ಇನ್ನೊಂದರಲ್ಲಿ ಬೆಂಬಲಿಸುತ್ತಾರೆ. DBMS ಅನ್ನು ಅವಲಂಬಿಸಿ, SQL, Java, C ಅಥವಾ C++ ನಂತಹ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. SQL ನಲ್ಲಿ ಬರೆಯದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ತಮ್ಮದೇ ಆದ SQL ಪ್ರಶ್ನೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು ಅಥವಾ ಕಾರ್ಯಗತಗೊಳಿಸದಿರಬಹುದು.

ಹಿಂದೆ

    ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ ತರ್ಕವನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಕಾರ್ಯವನ್ನು ಸುತ್ತುವರಿಯುತ್ತವೆ; ಇದು ವಿವಿಧ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಾದ್ಯಂತ ಡೇಟಾ ಪ್ರವೇಶ ಮತ್ತು ನಿರ್ವಹಣೆಗೆ ಸಂಪರ್ಕವನ್ನು ಒದಗಿಸುತ್ತದೆ.

    ಡೇಟಾಬೇಸ್ ಕೋಷ್ಟಕಗಳಿಂದ ಬಳಕೆದಾರರನ್ನು ಪ್ರತ್ಯೇಕಿಸುವುದು. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಆದರೆ ಟೇಬಲ್ ಡೇಟಾಗೆ ಅಲ್ಲ.

    ರಕ್ಷಣಾ ಕಾರ್ಯವಿಧಾನವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಹಿಂದಿನ ಅಂಶದ ಪ್ರಕಾರ, ನೀವು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳ ಮೂಲಕ ಮಾತ್ರ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಬಹುದಾದರೆ, SQL DELETE ಆಜ್ಞೆಯ ಮೂಲಕ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಬೇರೆ ಯಾರೂ ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

    ಕಡಿಮೆಯಾದ ನೆಟ್‌ವರ್ಕ್ ದಟ್ಟಣೆಯ ಪರಿಣಾಮವಾಗಿ ಸುಧಾರಿತ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ಬಹು ಪ್ರಶ್ನೆಗಳನ್ನು ಸಂಯೋಜಿಸಬಹುದು.

ವಿರುದ್ಧ

    ಹೆಚ್ಚಿನ ಕೆಲಸವನ್ನು ಸರ್ವರ್ ಬದಿಯಲ್ಲಿ ಮತ್ತು ಕ್ಲೈಂಟ್ ಬದಿಯಲ್ಲಿ ಕಡಿಮೆ ಮಾಡುವುದರಿಂದ ಡೇಟಾಬೇಸ್ ಸರ್ವರ್‌ನಲ್ಲಿ ಹೆಚ್ಚಿದ ಲೋಡ್.

    ನೀವು ಬಹಳಷ್ಟು ಕಲಿಯಬೇಕಾಗುತ್ತದೆ. ನಿಮ್ಮ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬರೆಯಲು ನೀವು MySQL ಅಭಿವ್ಯಕ್ತಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಕಲಿಯಬೇಕಾಗುತ್ತದೆ.

    ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ತರ್ಕವನ್ನು ನೀವು ಎರಡು ಸ್ಥಳಗಳಲ್ಲಿ ನಕಲು ಮಾಡುತ್ತಿದ್ದೀರಿ: ಸರ್ವರ್ ಕೋಡ್ ಮತ್ತು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳಿಗಾಗಿ ಕೋಡ್, ಇದರಿಂದಾಗಿ ಡೇಟಾ ಕುಶಲತೆಯ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸಂಕೀರ್ಣಗೊಳಿಸುತ್ತದೆ.

    ಒಂದು DBMS ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ (DB2, SQL ಸರ್ವರ್, ಇತ್ಯಾದಿ) ಸ್ಥಳಾಂತರವು ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.

ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳ ಉದ್ದೇಶ ಮತ್ತು ಪ್ರಯೋಜನಗಳು

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವರ್ಧಿಸುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ಭದ್ರತಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.

ಆಗಾಗ್ಗೆ ಬಳಸುವ ಪ್ರಶ್ನೆಯನ್ನು ಸಂಗ್ರಹಿಸುವ ಬದಲು, ಗ್ರಾಹಕರು ಅನುಗುಣವಾದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಉಲ್ಲೇಖಿಸಬಹುದು. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕರೆಯುವಾಗ, ಅದರ ವಿಷಯಗಳನ್ನು ಸರ್ವರ್ ತಕ್ಷಣವೇ ಸಂಸ್ಕರಿಸುತ್ತದೆ.

ವಾಸ್ತವವಾಗಿ ಪ್ರಶ್ನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರ ಜೊತೆಗೆ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಡೇಟಾವನ್ನು ಕುಶಲತೆಯಿಂದ ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ - DDL ಹೇಳಿಕೆಗಳನ್ನು ಬದಲಾಯಿಸುವುದು, ಅಳಿಸುವುದು, ಕಾರ್ಯಗತಗೊಳಿಸುವುದು (ಎಲ್ಲಾ DBMS ಗಳಲ್ಲಿ ಅಲ್ಲ!) ಮತ್ತು ಇತರ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕರೆಯುವುದು ಮತ್ತು ಸಂಕೀರ್ಣ ವಹಿವಾಟಿನ ತರ್ಕವನ್ನು ನಿರ್ವಹಿಸುವುದು. ಒಂದೇ ಹೇಳಿಕೆಯು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ಸಂಕೀರ್ಣ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕರೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ನೆಟ್ವರ್ಕ್ನಾದ್ಯಂತ ನೂರಾರು ಆಜ್ಞೆಗಳನ್ನು ಕಳುಹಿಸುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟವಾಗಿ, ಕ್ಲೈಂಟ್ನಿಂದ ಸರ್ವರ್ಗೆ ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸುವ ಅಗತ್ಯತೆ.

ಹೆಚ್ಚಿನ DBMS ಗಳಲ್ಲಿ, ಮೊದಲ ಬಾರಿಗೆ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನವನ್ನು ರನ್ ಮಾಡಿದಾಗ, ಅದನ್ನು ಸಂಕಲಿಸಲಾಗುತ್ತದೆ (ಪಾರ್ಸ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಡೇಟಾ ಪ್ರವೇಶ ಯೋಜನೆಯನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ). ಭವಿಷ್ಯದಲ್ಲಿ, ಅದರ ಪ್ರಕ್ರಿಯೆಯು ವೇಗವಾಗಿರುತ್ತದೆ. Oracle DBMS ಡೇಟಾ ನಿಘಂಟಿನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಶೇಖರಿಸಲಾದ ಕಾರ್ಯವಿಧಾನದ ಕೋಡ್ ಅನ್ನು ಅರ್ಥೈಸುತ್ತದೆ. Oracle 10g ಯಿಂದ ಪ್ರಾರಂಭಿಸಿ, C ಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ಕೋಡ್‌ನ ಸ್ಥಳೀಯ ಸಂಕಲನವನ್ನು ಮತ್ತು ನಂತರ ಗುರಿ ಯಂತ್ರದ ಯಂತ್ರ ಕೋಡ್‌ಗೆ ಬೆಂಬಲಿತವಾಗಿದೆ, ಅದರ ನಂತರ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕರೆಯುವಾಗ, ಅದರ ಕಂಪೈಲ್ ಮಾಡಿದ ಆಬ್ಜೆಕ್ಟ್ ಕೋಡ್ ಅನ್ನು ನೇರವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳು

ರಚಿಸಲಾದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಕರೆಯಬಹುದು, ಇದು ಮಾಡ್ಯುಲಾರಿಟಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಕೋಡ್ ಮರುಬಳಕೆಯನ್ನು ಪ್ರೋತ್ಸಾಹಿಸುತ್ತದೆ. ಎರಡನೆಯದು ಡೇಟಾಬೇಸ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಇದು ವ್ಯಾಪಾರ ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ ಪ್ರತ್ಯೇಕವಾಗುತ್ತದೆ. ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹೊಸ ನಿಯಮಗಳಿಗೆ ಅನುಸಾರವಾಗಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಮಾರ್ಪಡಿಸಬಹುದು. ಇದರ ನಂತರ, ಅದನ್ನು ಬಳಸುವ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ನೇರವಾದ ಮಾರ್ಪಾಡುಗಳಿಲ್ಲದೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೊಸ ವ್ಯಾಪಾರ ನಿಯಮಗಳ ಅನುಸರಣೆಗೆ ಬರುತ್ತವೆ.

ಸುರಕ್ಷತೆ

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳ ಬಳಕೆಯು ಡೇಟಾಬೇಸ್ ಕೋಷ್ಟಕಗಳಿಗೆ ನೇರ ಬಳಕೆದಾರ ಪ್ರವೇಶವನ್ನು ಮಿತಿಗೊಳಿಸಲು ಅಥವಾ ಸಂಪೂರ್ಣವಾಗಿ ತೆಗೆದುಹಾಕಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಡೇಟಾಗೆ ಪರೋಕ್ಷ ಮತ್ತು ಕಟ್ಟುನಿಟ್ಟಾಗಿ ನಿಯಂತ್ರಿತ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುವ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಮಾತ್ರ ಅನುಮತಿಗಳನ್ನು ನೀಡುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಕೆಲವು DBMS ಗಳು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ಪಠ್ಯ ಗೂಢಲಿಪೀಕರಣವನ್ನು (ಸುತ್ತುವಿಕೆ) ಬೆಂಬಲಿಸುತ್ತವೆ.

ಈ ಭದ್ರತಾ ವೈಶಿಷ್ಟ್ಯಗಳು ಡೇಟಾಬೇಸ್ ರಚನೆಯನ್ನು ಬಳಕೆದಾರರಿಂದ ಪ್ರತ್ಯೇಕಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಡೇಟಾಬೇಸ್ ಸಮಗ್ರತೆ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.

SQL ಇಂಜೆಕ್ಷನ್‌ನಂತಹ ಕ್ರಿಯೆಗಳ ಸಂಭವನೀಯತೆಯು ಕಡಿಮೆಯಾಗಿದೆ ಏಕೆಂದರೆ ಚೆನ್ನಾಗಿ ಬರೆಯಲಾದ ಸಂಗ್ರಹಣೆಯ ಕಾರ್ಯವಿಧಾನಗಳು ಹೆಚ್ಚುವರಿಯಾಗಿ DBMS ಗೆ ಪ್ರಶ್ನೆಯನ್ನು ರವಾನಿಸುವ ಮೊದಲು ಇನ್‌ಪುಟ್ ನಿಯತಾಂಕಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತವೆ.

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುವುದು

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ SQL ಭಾಷೆ ಅಥವಾ ಆಯ್ದ DBMS ನಲ್ಲಿ ಅದರ ನಿರ್ದಿಷ್ಟ ಅನುಷ್ಠಾನವನ್ನು ಬಳಸಿಕೊಂಡು ರಚಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, DBMS ನಲ್ಲಿ ಈ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಮೈಕ್ರೋಸಾಫ್ಟ್ SQLಸರ್ವರ್‌ನಲ್ಲಿ ಟ್ರಾನ್ಸಾಕ್ಟ್-SQL ಭಾಷೆ ಇದೆ, ಒರಾಕಲ್‌ನಲ್ಲಿ - PL/SQL, ಇಂಟರ್‌ಬೇಸ್ ಮತ್ತು ಫೈರ್‌ಬರ್ಡ್‌ನಲ್ಲಿ - PSQL, PostgreSQL ನಲ್ಲಿ - PL/pgSQL, PL/Tcl, PL/Perl, PL/Python, IBM DB2 ನಲ್ಲಿ - SQL/PL ( eng. ), Informix - SPL. MySQL SQL:2003 ಮಾನದಂಡವನ್ನು ಬಹಳ ನಿಕಟವಾಗಿ ಅನುಸರಿಸುತ್ತದೆ, ಅದರ ಭಾಷೆ SQL/PL ಗೆ ಹೋಲುತ್ತದೆ.

ಕೆಲವು DBMS ಗಳು ಸ್ವತಂತ್ರ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸಬಹುದಾದ ಯಾವುದೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತವೆ, ಉದಾಹರಣೆಗೆ, C++ ಅಥವಾ Delphi. ಮೈಕ್ರೋಸಾಫ್ಟ್ SQL ಸರ್ವರ್ ಪರಿಭಾಷೆಯಲ್ಲಿ, ಅಂತಹ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ವಿಸ್ತೃತ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಅವು ಕೇವಲ Win32 DLL ನಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ಕಾರ್ಯಗಳಾಗಿವೆ. ಮತ್ತು, ಉದಾಹರಣೆಗೆ, ಇಂಟರ್‌ಬೇಸ್ ಮತ್ತು ಫೈರ್‌ಬರ್ಡ್‌ನಲ್ಲಿ, DLL/SO ನಿಂದ ಕರೆಯಲಾಗುವ ಕಾರ್ಯಗಳು ಬೇರೆ ಹೆಸರನ್ನು ಹೊಂದಿವೆ - UDF (ಬಳಕೆದಾರರ ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯ). MS SQL 2005 ಯಾವುದೇ .NET ಭಾಷೆಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬರೆಯುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಪರಿಚಯಿಸಿತು ಮತ್ತು ವಿಸ್ತೃತ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಭವಿಷ್ಯದಲ್ಲಿ ಕೈಬಿಡಲು ಯೋಜಿಸಲಾಗಿದೆ. Oracle DBMS, ಪ್ರತಿಯಾಗಿ, ಜಾವಾದಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬರೆಯಲು ಅನುಮತಿಸುತ್ತದೆ. IBM DB2 ನಲ್ಲಿ, ಸಾಂಪ್ರದಾಯಿಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳು ಮತ್ತು ಕಾರ್ಯಗಳನ್ನು ಬರೆಯುವುದು ಸಾಂಪ್ರದಾಯಿಕ ಮಾರ್ಗವಾಗಿದೆ, ಇದು ಮೊದಲಿನಿಂದಲೂ ಬೆಂಬಲಿತವಾಗಿದೆ, ಮತ್ತು SQL ಕಾರ್ಯವಿಧಾನದ ವಿಸ್ತರಣೆಯನ್ನು ಈ DBMS ಗೆ ANSI ಮಾನದಂಡದಲ್ಲಿ ಸೇರಿಸಿದ ನಂತರ ಸಾಕಷ್ಟು ತಡವಾದ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಮಾತ್ರ ಸೇರಿಸಲಾಗಿದೆ. Informix ಜಾವಾ ಮತ್ತು C ನಲ್ಲಿನ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಹ ಬೆಂಬಲಿಸುತ್ತದೆ.

Oracle DBMS ನಲ್ಲಿ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಪ್ಯಾಕೇಜುಗಳೆಂದು ಕರೆಯಬಹುದು. ಒಂದು ಪ್ಯಾಕೇಜ್ ಎರಡು ಭಾಗಗಳನ್ನು ಒಳಗೊಂಡಿದೆ - ಪ್ಯಾಕೇಜ್ ವಿವರಣೆ, ಇದು ಶೇಖರಿಸಲಾದ ಕಾರ್ಯವಿಧಾನದ ವ್ಯಾಖ್ಯಾನವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ ಮತ್ತು ಅದರ ಅನುಷ್ಠಾನವನ್ನು ಒಳಗೊಂಡಿರುವ ಪ್ಯಾಕೇಜ್ ದೇಹ. ಹೀಗಾಗಿ, ಪ್ರೋಗ್ರಾಂ ಕೋಡ್ನ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಅದರ ಅನುಷ್ಠಾನದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲು ಒರಾಕಲ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

IBM DB2 DBMS ನಲ್ಲಿ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಮಾಡ್ಯೂಲ್‌ಗಳಾಗಿ ಸಂಯೋಜಿಸಬಹುದು.

ಸಿಂಟ್ಯಾಕ್ಸ್

ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಿ `p2`()

SQL ಸೆಕ್ಯುರಿಟಿ ಡಿಫೈನರ್

ಕಾಮೆಂಟ್ "ಒಂದು ಕಾರ್ಯವಿಧಾನ"

"ಹಲೋ ವರ್ಲ್ಡ್!" ಆಯ್ಕೆಮಾಡಿ;

ಕೋಡ್‌ನ ಮೊದಲ ಭಾಗವು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸುತ್ತದೆ. ಮುಂದಿನದು ಐಚ್ಛಿಕ ನಿಯತಾಂಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ನಂತರ ಹೆಸರು ಬರುತ್ತದೆ ಮತ್ತು ಅಂತಿಮವಾಗಿ, ಕಾರ್ಯವಿಧಾನದ ದೇಹ.

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ 4 ಗುಣಲಕ್ಷಣಗಳು:

ಭಾಷೆ: ಪೋರ್ಟಬಿಲಿಟಿ ಉದ್ದೇಶಗಳಿಗಾಗಿ, ಡೀಫಾಲ್ಟ್ SQL ಆಗಿದೆ.

ನಿರ್ಣಾಯಕ: ಕಾರ್ಯವಿಧಾನವು ಯಾವಾಗಲೂ ಒಂದೇ ಫಲಿತಾಂಶವನ್ನು ನೀಡಿದರೆ ಮತ್ತು ಅದೇ ಇನ್‌ಪುಟ್ ನಿಯತಾಂಕಗಳನ್ನು ತೆಗೆದುಕೊಂಡರೆ. ಇದು ನಕಲು ಮತ್ತು ನೋಂದಣಿ ಪ್ರಕ್ರಿಯೆಗಾಗಿ. ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವು ನಿರ್ಣಾಯಕವಲ್ಲ.

SQL ಭದ್ರತೆ: ಕರೆ ಸಮಯದಲ್ಲಿ ಬಳಕೆದಾರರ ಹಕ್ಕುಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ. INVOKER ಎಂದರೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ಕರೆ ಮಾಡುವ ಬಳಕೆದಾರ. DEFINER ಕಾರ್ಯವಿಧಾನದ "ಸೃಷ್ಟಿಕರ್ತ" ಆಗಿದೆ. ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವು DEFINER ಆಗಿದೆ.

ಕಾಮೆಂಟ್: ದಾಖಲಾತಿ ಉದ್ದೇಶಗಳಿಗಾಗಿ, ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವು "" ಆಗಿದೆ

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕರೆಯಲಾಗುತ್ತಿದೆ

ಸಂಗ್ರಹಿಸಿದ_ಪ್ರಕ್ರಿಯೆ_ಹೆಸರಿಗೆ ಕರೆ ಮಾಡಿ (ಪಾರಂ1, ಪ್ಯಾರಮ್2, ....)

ಕರೆ ವಿಧಾನ1(10 , "ಸ್ಟ್ರಿಂಗ್ ಪ್ಯಾರಾಮೀಟರ್" , @parameter_var);

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಮಾರ್ಪಡಿಸುವುದು

MySQL ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬದಲಾಯಿಸಲು ALTER ಪ್ರೊಸೀಜರ್ ಹೇಳಿಕೆಯನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ಇದು ಕೆಲವು ಗುಣಲಕ್ಷಣಗಳನ್ನು ಬದಲಾಯಿಸಲು ಮಾತ್ರ ಸೂಕ್ತವಾಗಿದೆ. ನೀವು ಕಾರ್ಯವಿಧಾನದ ನಿಯತಾಂಕಗಳನ್ನು ಅಥವಾ ದೇಹವನ್ನು ಬದಲಾಯಿಸಬೇಕಾದರೆ, ನೀವು ಅದನ್ನು ಅಳಿಸಬೇಕು ಮತ್ತು ಮರುಸೃಷ್ಟಿಸಬೇಕು.

ತೆಗೆಯುವಿಕೆಸಂಗ್ರಹಿಸಲಾಗಿದೆಕಾರ್ಯವಿಧಾನಗಳು

p2 ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ ಡ್ರಾಪ್ ಕಾರ್ಯವಿಧಾನ;

ಇದು ಸರಳ ಆಜ್ಞೆಯಾಗಿದೆ. ಅಂತಹ ಕಾರ್ಯವಿಧಾನವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ IF EXISTS ಹೇಳಿಕೆಯು ದೋಷವನ್ನು ಹಿಡಿಯುತ್ತದೆ.

ಆಯ್ಕೆಗಳು

ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಿ proc1(): ಖಾಲಿ ಪ್ಯಾರಾಮೀಟರ್ ಪಟ್ಟಿ

ಪ್ರೊಸೀಜರ್ ಪ್ರೋಸಿ1 ಅನ್ನು ರಚಿಸಿ (ಡೇಟಾ-ಟೈಪ್ ವರ್ಣನಾಮದಲ್ಲಿ): ಒಂದು ಇನ್‌ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್. IN ಪದವು ಐಚ್ಛಿಕವಾಗಿರುತ್ತದೆ ಏಕೆಂದರೆ ಡೀಫಾಲ್ಟ್ ನಿಯತಾಂಕಗಳು IN (ಇನ್) ಆಗಿರುತ್ತವೆ.

ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಿ proc1 (ಔಟ್ ವರ್ನೇಮ್ ಡೇಟಾ-ಟೈಪ್): ಒಂದು ಪ್ಯಾರಾಮೀಟರ್ ಹಿಂತಿರುಗಿಸಲಾಗಿದೆ.

ಪ್ರೊಸೀಜರ್ proc1 ಅನ್ನು ರಚಿಸಿ (INOUT varname DATA-TYPE): ಒಂದು ಪ್ಯಾರಾಮೀಟರ್, ಇನ್‌ಪುಟ್ ಮತ್ತು ರಿಟರ್ನ್ ಎರಡೂ.

ವೇರಿಯಬಲ್ ಡಿಕ್ಲರೇಶನ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ಡಿಕ್ಲೇರ್ ವರ್ಣನಾಮ DATA-TYPE ಡೀಫಾಲ್ಟ್ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ;

ಕಾರ್ಯವಿಧಾನದ ಘೋಷಣೆ

ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಿ [({IN|OUT|INOUT} [,…])]
[ಡೈನಾಮಿಕ್ ಫಲಿತಾಂಶ ಸೆಟ್ ]
ಆರಂಭಿಸಲು [ಪರಮಾಣು]

ಅಂತ್ಯ

ಕೀವರ್ಡ್‌ಗಳು
. IN (ಇನ್ಪುಟ್) - ಇನ್ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್
. ಔಟ್ (ಔಟ್ಪುಟ್) - ಔಟ್ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್
. INOUT - ಇನ್‌ಪುಟ್ ಮತ್ತು ಔಟ್‌ಪುಟ್, ಹಾಗೆಯೇ ಕ್ಷೇತ್ರ (ಪ್ಯಾರಾಮೀಟರ್‌ಗಳಿಲ್ಲದೆ)
. ಕಾರ್ಯವಿಧಾನವು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಕರ್ಸರ್‌ಗಳನ್ನು ತೆರೆಯಬಹುದು ಎಂದು ಡೈನಾಮಿಕ್ ಫಲಿತಾಂಶ ಸೆಟ್ ಸೂಚಿಸುತ್ತದೆ, ಅದು ಕಾರ್ಯವಿಧಾನವು ಹಿಂತಿರುಗಿದ ನಂತರ ತೆರೆದಿರುತ್ತದೆ

ಟಿಪ್ಪಣಿಗಳು
ನೆಟ್‌ವರ್ಕ್ ಮತ್ತು ಸ್ಟಾಕ್ ಓವರ್‌ಲೋಡ್‌ನಿಂದಾಗಿ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳಲ್ಲಿ (ಪ್ರಾಥಮಿಕವಾಗಿ ದೊಡ್ಡ ಸಂಖ್ಯೆಗಳು ಮತ್ತು ಅಕ್ಷರ ತಂತಿಗಳು) ಅನೇಕ ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ. ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಟ್ರಾನ್ಸಾಕ್ಟ್-SQL, PL/SQL ಮತ್ತು ಇನ್‌ಫಾರ್ಮಿಕ್ಸ್‌ನ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಉಪಭಾಷೆಗಳು ಮಾನದಂಡದಿಂದ ಗಮನಾರ್ಹ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಹೊಂದಿವೆ, ಎರಡೂ ನಿಯತಾಂಕಗಳ ಘೋಷಣೆ ಮತ್ತು ಬಳಕೆ, ವೇರಿಯಬಲ್ ಘೋಷಣೆಗಳು ಮತ್ತು ಸಬ್‌ರುಟೀನ್‌ಗಳ ಕರೆಯಲ್ಲಿ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ಸಂಗ್ರಹ ಗಾತ್ರವನ್ನು ಅಂದಾಜು ಮಾಡಲು ಈ ಕೆಳಗಿನ ಅಂದಾಜನ್ನು ಬಳಸಲು Microsoft ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ:
=(ಏಕಕಾಲೀನ ಬಳಕೆದಾರರ ಗರಿಷ್ಟ ಸಂಖ್ಯೆ)*(ದೊಡ್ಡ ಮರಣದಂಡನೆ ಯೋಜನೆಯ ಗಾತ್ರ)*1.25. ಪುಟಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಯೋಜನೆಯ ಗಾತ್ರವನ್ನು ನಿರ್ಧರಿಸುವುದು ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಮಾಡಬಹುದು: DBCC MEMUSAGE.

ಕಾರ್ಯವಿಧಾನವನ್ನು ಕರೆಯಲಾಗುತ್ತಿದೆ

ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅನೇಕ DBMS ಗಳಲ್ಲಿ, ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ:

ಕಾರ್ಯವಿಧಾನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ [(][)]

ಸೂಚನೆ: ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಕರೆಗಳನ್ನು ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ, ಮತ್ತೊಂದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದಿಂದ ಅಥವಾ ಸಂವಾದಾತ್ಮಕವಾಗಿ ಮಾಡಬಹುದು.

ಕಾರ್ಯವಿಧಾನದ ಘೋಷಣೆಯ ಉದಾಹರಣೆ

ಪ್ರೊಸೀಜರ್ ಪ್ರೊಸಿ1 ಅನ್ನು ರಚಿಸಿ //ವಿಧಾನವನ್ನು ಘೋಷಿಸಿ
ಸ್ನೇಮ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಕರ್1 ಕರ್ಸರ್ ಅನ್ನು ಘೋಷಿಸಿ, ಮಾರಾಟಗಾರರಿಂದ ನಗರದಿಂದ ರೇಟಿಂಗ್>200 //ಕರ್ಸರ್ ಅನ್ನು ಘೋಷಿಸಿ
ಕರ್1 ತೆರೆಯಿರಿ //ಕರ್ಸರ್ ತೆರೆಯಿರಿ
Cur1 ನಿಂದ ಮುಂದಿನದನ್ನು ಪಡೆದುಕೊಳ್ಳಿ //ಕರ್ಸರ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಓದಿ
ಆದರೆ @@Fetch_Status=0
ಆರಂಭಿಸಲು
Cur1 ನಿಂದ ಮುಂದಿನದನ್ನು ಪಡೆದುಕೊಳ್ಳಿ
ಅಂತ್ಯ
ಕ್ಲೋಸ್ ಕರ್1 //ಕರ್ಸರ್ ಅನ್ನು ಮುಚ್ಚಿ
ಡೀಲೋಕೇಟ್ ಕರ್1
Proc1 ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ // ಕಾರ್ಯವಿಧಾನವನ್ನು ಚಲಾಯಿಸಿ

ಬಹುರೂಪತೆ
ಎರಡು ಸಬ್‌ರುಟೀನ್‌ಗಳ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು ಒಂದೇ ಆಗಿದ್ದರೆ ಒಂದೇ ಹೆಸರಿನ ಎರಡು ಸಬ್‌ರುಟೀನ್‌ಗಳನ್ನು ಒಂದೇ ಸ್ಕೀಮಾದಲ್ಲಿ ರಚಿಸಬಹುದು ಉತ್ತಮ ಸ್ನೇಹಿತಪರಸ್ಪರ ಪ್ರತ್ಯೇಕಿಸುವಂತೆ. ಒಂದೇ ಸ್ಕೀಮಾದಲ್ಲಿ ಒಂದೇ ಹೆಸರಿನ ಎರಡು ದಿನಚರಿಗಳ ನಡುವೆ ವ್ಯತ್ಯಾಸವನ್ನು ಗುರುತಿಸಲು, ಪ್ರತಿಯೊಂದಕ್ಕೂ ಪರ್ಯಾಯ ಮತ್ತು ಅನನ್ಯ ಹೆಸರನ್ನು ನೀಡಲಾಗುತ್ತದೆ (ನಿರ್ದಿಷ್ಟ ಹೆಸರು). ಸಬ್ರುಟೀನ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿದಾಗ ಅಂತಹ ಹೆಸರನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಹಲವಾರು ಒಂದೇ ರೀತಿಯ ಹೆಸರುಗಳೊಂದಿಗೆ ಸಬ್ರುಟೀನ್ಗಳನ್ನು ಕರೆಯುವಾಗ, ಅಗತ್ಯವಿರುವ ಸಬ್ರುಟೀನ್ ಅನ್ನು ನಿರ್ಧರಿಸುವುದು ಹಲವಾರು ಹಂತಗಳಲ್ಲಿ ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ:
. ಆರಂಭದಲ್ಲಿ, ಎಲ್ಲಾ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಇದರೊಂದಿಗೆ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹೆಸರು, ಮತ್ತು ಯಾವುದೂ ಇಲ್ಲದಿದ್ದರೆ, ನೀಡಿದ ಹೆಸರಿನೊಂದಿಗೆ ಎಲ್ಲಾ ಕಾರ್ಯಗಳು.
. ಹೆಚ್ಚಿನ ವಿಶ್ಲೇಷಣೆಗಾಗಿ, ಯಾವ ಉಪಕ್ರಮಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಮಾತ್ರ ಈ ಬಳಕೆದಾರಮರಣದಂಡನೆ ಸವಲತ್ತು (ಎಕ್ಸಿಕ್ಯೂಟ್) ಹೊಂದಿದೆ.
. ಅವರಿಗೆ, ಕರೆ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳ ಸಂಖ್ಯೆಗೆ ಅನುಗುಣವಾಗಿರುವ ನಿಯತಾಂಕಗಳ ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗುತ್ತದೆ. ನಿಯತಾಂಕಗಳ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಡೇಟಾ ಪ್ರಕಾರಗಳು ಮತ್ತು ಅವುಗಳ ಸ್ಥಾನಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ.
. ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಬ್ರುಟೀನ್ ಉಳಿದಿದ್ದರೆ, ಅರ್ಹತೆಯ ಹೆಸರು ಚಿಕ್ಕದಾಗಿದೆ ಎಂದು ಆಯ್ಕೆಮಾಡಲಾಗುತ್ತದೆ.
ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಒರಾಕಲ್ ಡಿಬಿ@ - ಇನ್ ಪ್ಯಾಕೇಜ್‌ನಲ್ಲಿ ಮಾತ್ರ ಘೋಷಿಸಲಾದ ಕಾರ್ಯಗಳಿಗಾಗಿ ಪಾಲಿಮಾರ್ಫಿಸಂ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ ವಿಭಿನ್ನ ಯೋಜನೆ, ಮತ್ತು Sybase ಮತ್ತು MS SQL ಸರ್ವರ್‌ನಲ್ಲಿ ಓವರ್‌ಲೋಡ್ ಮಾಡುವುದನ್ನು ನಿಷೇಧಿಸಲಾಗಿದೆ.

ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಅಳಿಸುವುದು ಮತ್ತು ಬದಲಾಯಿಸುವುದು
ಕಾರ್ಯವಿಧಾನವನ್ನು ತೆಗೆದುಹಾಕಲು, ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಿ:

ಕಾರ್ಯವಿಧಾನವನ್ನು ಬದಲಾಯಿಸಲು, ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಿ:

ಕಾರ್ಯವಿಧಾನವನ್ನು ಬದಲಿಸಿ [([{IN|OUT|INOUT}])]
ಆರಂಭಿಸಲು [ಪರಮಾಣು]

ಅಂತ್ಯ

ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸವಲತ್ತುಗಳು

ಗ್ರ್ಯಾಂಟ್ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆನ್ TO |ಸಾರ್ವಜನಿಕ [ಅನುದಾನದ ಆಯ್ಕೆಯೊಂದಿಗೆ]

ಸಿಸ್ಟಮ್ ಕಾರ್ಯವಿಧಾನಗಳು
ಅನೇಕ DBMS ಗಳು (SQL ಸರ್ವರ್ ಸೇರಿದಂತೆ) ನಿಮ್ಮ ಸ್ವಂತ ಉದ್ದೇಶಗಳಿಗಾಗಿ ನೀವು ಬಳಸಬಹುದಾದ ಒಂದು ನಿರ್ದಿಷ್ಟ ಅಂತರ್ನಿರ್ಮಿತ ಸಿಸ್ಟಮ್ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಹೊಂದಿವೆ.

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಕಾರ್ಯವಿಧಾನವು ಇರುವ ಡೇಟಾಬೇಸ್ನ ಸಂದರ್ಭದಲ್ಲಿ ಮಾತ್ರ ಇದನ್ನು ನಡೆಸಿದರೆ ಮಾತ್ರ ಸಾಧ್ಯ.

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳ ವಿಧಗಳು

SQL ಸರ್ವರ್ ಹಲವಾರು ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿದೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು.

  • ವ್ಯವಸ್ಥೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುವಿವಿಧ ನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಆಡಳಿತಾತ್ಮಕ ಕ್ರಮಗಳು. ಬಹುತೇಕ ಎಲ್ಲಾ ಸರ್ವರ್ ಆಡಳಿತ ಚಟುವಟಿಕೆಗಳನ್ನು ಅವರ ಸಹಾಯದಿಂದ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ನಾವು ವ್ಯವಸ್ಥಿತ ಎಂದು ಹೇಳಬಹುದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಇದು ಸಿಸ್ಟಮ್ ಟೇಬಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸವನ್ನು ಒದಗಿಸುವ ಇಂಟರ್ಫೇಸ್ ಆಗಿದೆ, ಇದು ಅಂತಿಮವಾಗಿ ಬಳಕೆದಾರ ಮತ್ತು ಸಿಸ್ಟಮ್ ಡೇಟಾಬೇಸ್‌ಗಳ ಸಿಸ್ಟಮ್ ಟೇಬಲ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಲು, ಸೇರಿಸಲು, ಅಳಿಸಲು ಮತ್ತು ಹಿಂಪಡೆಯಲು ಬರುತ್ತದೆ. ವ್ಯವಸ್ಥೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು sp_ ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ಹೊಂದಿದ್ದು, ಸಿಸ್ಟಮ್ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಮತ್ತು ಯಾವುದೇ ಇತರ ಡೇಟಾಬೇಸ್‌ನ ಸಂದರ್ಭದಲ್ಲಿ ಕರೆಯಬಹುದು.
  • ಕಸ್ಟಮ್ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಕೆಲವು ಕ್ರಮಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು- ಪೂರ್ಣ ಪ್ರಮಾಣದ ಡೇಟಾಬೇಸ್ ವಸ್ತು. ಪರಿಣಾಮವಾಗಿ, ಪ್ರತಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಇದು ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ನಿರ್ದಿಷ್ಟ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿದೆ.
  • ತಾತ್ಕಾಲಿಕ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಸ್ವಲ್ಪ ಸಮಯದವರೆಗೆ ಮಾತ್ರ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ, ನಂತರ ಅವುಗಳು ಸರ್ವರ್ನಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಾಶವಾಗುತ್ತವೆ. ಅವುಗಳನ್ನು ಸ್ಥಳೀಯ ಮತ್ತು ಜಾಗತಿಕವಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ. ಸ್ಥಳೀಯ ತಾತ್ಕಾಲಿಕ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಅವರು ರಚಿಸಿದ ಸಂಪರ್ಕದಿಂದ ಮಾತ್ರ ಕರೆಯಬಹುದು. ಅಂತಹ ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸುವಾಗ, ನೀವು ಒಂದೇ # ಅಕ್ಷರದಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಹೆಸರನ್ನು ನೀಡಬೇಕು. ಎಲ್ಲಾ ತಾತ್ಕಾಲಿಕ ವಸ್ತುಗಳಂತೆ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಬಳಕೆದಾರರು ಸಂಪರ್ಕ ಕಡಿತಗೊಂಡಾಗ ಅಥವಾ ಸರ್ವರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ನಿಲ್ಲಿಸಿದಾಗ ಈ ಪ್ರಕಾರವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ. ಜಾಗತಿಕ ತಾತ್ಕಾಲಿಕ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಅದೇ ಕಾರ್ಯವಿಧಾನವನ್ನು ಹೊಂದಿರುವ ಸರ್ವರ್‌ನಿಂದ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಗೆ ಲಭ್ಯವಿದೆ. ಅದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು, ## ಅಕ್ಷರಗಳಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಹೆಸರನ್ನು ನೀಡಿ. ಸರ್ವರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ನಿಲ್ಲಿಸಿದಾಗ ಅಥವಾ ಅವುಗಳನ್ನು ರಚಿಸಿದ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಪರ್ಕವನ್ನು ಮುಚ್ಚಿದಾಗ ಈ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ.

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ರಚಿಸುವುದು, ಮಾರ್ಪಡಿಸುವುದು ಮತ್ತು ಅಳಿಸುವುದು

ಸೃಷ್ಟಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಕೆಳಗಿನ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ:

  • ರಚಿಸಿದ ಪ್ರಕಾರವನ್ನು ನಿರ್ಧರಿಸುವುದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ: ತಾತ್ಕಾಲಿಕ ಅಥವಾ ಕಸ್ಟಮ್. ಹೆಚ್ಚುವರಿಯಾಗಿ, ನೀವು ನಿಮ್ಮ ಸ್ವಂತ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸಬಹುದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ, sp_ ನೊಂದಿಗೆ ಪೂರ್ವಪ್ರತ್ಯಯವಾದ ಹೆಸರನ್ನು ನೀಡಿ ಮತ್ತು ಅದನ್ನು ಇರಿಸುವುದು ಸಿಸ್ಟಮ್ ಬೇಸ್ಡೇಟಾ. ಈ ಕಾರ್ಯವಿಧಾನವು ಯಾವುದೇ ಸ್ಥಳೀಯ ಸರ್ವರ್ ಡೇಟಾಬೇಸ್ ಸಂದರ್ಭದಲ್ಲಿ ಲಭ್ಯವಿರುತ್ತದೆ;
  • ಪ್ರವೇಶ ಹಕ್ಕುಗಳ ಯೋಜನೆ. ರಚಿಸುವಾಗ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಅದನ್ನು ರಚಿಸಿದ ಬಳಕೆದಾರರಂತೆ ಡೇಟಾಬೇಸ್ ವಸ್ತುಗಳಿಗೆ ಅದೇ ಪ್ರವೇಶ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ ಎಂದು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕು;
  • ವ್ಯಾಖ್ಯಾನ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನದ ನಿಯತಾಂಕಗಳು. ಹೆಚ್ಚಿನ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ಕಾರ್ಯವಿಧಾನಗಳಂತೆಯೇ, ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿರಬಹುದು;
  • ಕೋಡ್ ಅಭಿವೃದ್ಧಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ. ಕಾರ್ಯವಿಧಾನದ ಕೋಡ್ ಇತರರಿಗೆ ಕರೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಯಾವುದೇ SQL ಆಜ್ಞೆಗಳ ಅನುಕ್ರಮವನ್ನು ಒಳಗೊಂಡಿರಬಹುದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು.

ಹೊಸದನ್ನು ರಚಿಸುವುದು ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವದನ್ನು ಬದಲಾಯಿಸುವುದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ ಮಾಡಲಾಗುತ್ತದೆ:

<определение_процедуры>::= (ರಚಿಸಿ | ALTER ) ಕಾರ್ಯವಿಧಾನದ_ಹೆಸರು [;ಸಂಖ್ಯೆ] [(@parameter_name data_type ) [=ಡೀಫಾಲ್ಟ್] ][,...n] AS sql_operator [...n]

ಈ ಆಜ್ಞೆಯ ನಿಯತಾಂಕಗಳನ್ನು ನೋಡೋಣ.

sp_ , # , ## ಪೂರ್ವಪ್ರತ್ಯಯಗಳನ್ನು ಬಳಸಿ, ರಚಿಸಲಾದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಸಿಸ್ಟಮ್ ಅಥವಾ ತಾತ್ಕಾಲಿಕವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ಕಮಾಂಡ್ ಸಿಂಟ್ಯಾಕ್ಸ್‌ನಿಂದ ನೀವು ನೋಡುವಂತೆ, ರಚಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಹೊಂದಿರುವ ಮಾಲೀಕರ ಹೆಸರನ್ನು ಮತ್ತು ಅದು ಇರುವ ಡೇಟಾಬೇಸ್‌ನ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಹೀಗಾಗಿ, ರಚಿಸಿದ ಇರಿಸಲು ಸಲುವಾಗಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನನಿರ್ದಿಷ್ಟ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ, ಆ ಡೇಟಾಬೇಸ್‌ನ ಸಂದರ್ಭದಲ್ಲಿ ನೀವು CREATE PROCEDURE ಆಜ್ಞೆಯನ್ನು ನೀಡಬೇಕು. ದೇಹದಿಂದ ತಿರುಗಿದಾಗ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಸಂಕ್ಷಿಪ್ತ ಹೆಸರುಗಳನ್ನು ಒಂದೇ ಡೇಟಾಬೇಸ್‌ನ ವಸ್ತುಗಳಿಗೆ ಬಳಸಬಹುದು, ಅಂದರೆ ಡೇಟಾಬೇಸ್ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ. ಇತರ ಡೇಟಾಬೇಸ್‌ಗಳಲ್ಲಿರುವ ವಸ್ತುಗಳನ್ನು ನೀವು ಪ್ರವೇಶಿಸಬೇಕಾದರೆ, ಡೇಟಾಬೇಸ್ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದು ಕಡ್ಡಾಯವಾಗಿದೆ.

ಹೆಸರಿನಲ್ಲಿರುವ ಸಂಖ್ಯೆ ಒಂದು ಗುರುತಿನ ಸಂಖ್ಯೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ, ಇದು ಕಾರ್ಯವಿಧಾನಗಳ ಗುಂಪಿನಲ್ಲಿ ಅನನ್ಯವಾಗಿ ಗುರುತಿಸುತ್ತದೆ. ನಿರ್ವಹಣೆಯ ಸುಲಭತೆಗಾಗಿ, ಕಾರ್ಯವಿಧಾನಗಳು ತಾರ್ಕಿಕವಾಗಿ ಒಂದೇ ರೀತಿಯದ್ದಾಗಿರುತ್ತವೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳುಒಂದೇ ಹೆಸರನ್ನು ಆದರೆ ವಿಭಿನ್ನ ಗುರುತಿನ ಸಂಖ್ಯೆಗಳನ್ನು ನೀಡುವ ಮೂಲಕ ಗುಂಪು ಮಾಡಬಹುದು.

ರಚಿಸಿದ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸಲು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನನಿಯತಾಂಕಗಳನ್ನು ಬಳಸಬಹುದು, ಅದರ ಹೆಸರುಗಳು, ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳ ಹೆಸರುಗಳಂತೆ, @ ಚಿಹ್ನೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗಬೇಕು. ಒಂದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಅಲ್ಪವಿರಾಮದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾದ ಬಹು ನಿಯತಾಂಕಗಳನ್ನು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಕಾರ್ಯವಿಧಾನದ ದೇಹವು ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ಬಳಸಬಾರದು, ಅವರ ಹೆಸರುಗಳು ಈ ಕಾರ್ಯವಿಧಾನದ ನಿಯತಾಂಕಗಳ ಹೆಸರುಗಳೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತವೆ.

ಅನುಗುಣವಾದ ಡೇಟಾ ಪ್ರಕಾರವನ್ನು ನಿರ್ಧರಿಸಲು ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನದ ನಿಯತಾಂಕ, ಯಾವುದೇ ಪ್ರಕಾರವು ಸೂಕ್ತವಾಗಿದೆ SQL ಡೇಟಾ, ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿಸಿದವುಗಳನ್ನು ಒಳಗೊಂಡಂತೆ. ಆದಾಗ್ಯೂ, CURSOR ಡೇಟಾ ಪ್ರಕಾರವನ್ನು ಮಾತ್ರ ಬಳಸಬಹುದಾಗಿದೆ ಔಟ್ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ, ಅಂದರೆ OUTPUT ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದು.

OUTPUT ಕೀವರ್ಡ್‌ನ ಉಪಸ್ಥಿತಿಯು ಅನುಗುಣವಾದ ಪ್ಯಾರಾಮೀಟರ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಹಿಂತಿರುಗಿಸಲು ಉದ್ದೇಶಿಸಿದೆ ಎಂದರ್ಥ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ. ಆದಾಗ್ಯೂ, ಮೌಲ್ಯಗಳನ್ನು ರವಾನಿಸಲು ನಿಯತಾಂಕವು ಸೂಕ್ತವಲ್ಲ ಎಂದು ಇದರ ಅರ್ಥವಲ್ಲ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನ. OUTPUT ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದರಿಂದ ನಿರ್ಗಮಿಸಲು ಸರ್ವರ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಪ್ಯಾರಾಮೀಟರ್‌ನ ಪ್ರಸ್ತುತ ಮೌಲ್ಯವನ್ನು ಸ್ಥಳೀಯ ವೇರಿಯೇಬಲ್‌ಗೆ ನಿಯೋಜಿಸಿ, ಅದನ್ನು ನಿಯತಾಂಕದ ಮೌಲ್ಯವಾಗಿ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕರೆಯುವಾಗ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ. OUTPUT ಕೀವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಾಗ, ಕಾರ್ಯವಿಧಾನವನ್ನು ಕರೆಯುವಾಗ ಅನುಗುಣವಾದ ನಿಯತಾಂಕದ ಮೌಲ್ಯವನ್ನು ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್ ಬಳಸಿ ಮಾತ್ರ ಹೊಂದಿಸಬಹುದು ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ನಿಯಮಿತ ನಿಯತಾಂಕಗಳಿಗೆ ಅನುಮತಿಸಲಾದ ಯಾವುದೇ ಅಭಿವ್ಯಕ್ತಿಗಳು ಅಥವಾ ಸ್ಥಿರಾಂಕಗಳನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ.

ಜೊತೆಯಲ್ಲಿ VARYING ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ

ಸಂಗ್ರಹಿಸಲಾಗಿದೆ SQL ಕಾರ್ಯವಿಧಾನಗಳುರೂಪದಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಹುದಾದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಸಾಫ್ಟ್‌ವೇರ್ ಮಾಡ್ಯೂಲ್ ಆಗಿದೆ ವಿವಿಧ ವಸ್ತುಗಳು. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಇದು SQL ಹೇಳಿಕೆಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಒಂದು ವಸ್ತುವಾಗಿದೆ. ಈ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕ್ಲೈಂಟ್‌ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯಕ್ರಮಗಳು, ಹೊಂದಲು ಒಳ್ಳೆಯ ಪ್ರದರ್ಶನ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಅಂತಹ ವಸ್ತುಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಇತರ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಿಂದ ಅಥವಾ ಕೆಲವು ಇತರ ವಿಭಾಗಗಳಿಂದ ಕರೆಯಲಾಗುತ್ತದೆ.

ಪರಿಚಯ

ಅನೇಕ ಜನರು ವಿವಿಧ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಹೋಲುತ್ತಾರೆ ಎಂದು ನಂಬುತ್ತಾರೆ (ಕ್ರಮವಾಗಿ, MS SQL ಹೊರತುಪಡಿಸಿ). ಬಹುಶಃ ಇದು ನಿಜ. ಅವು ಒಂದೇ ರೀತಿಯ ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿವೆ ಮತ್ತು ಒಂದೇ ರೀತಿಯ ಮೌಲ್ಯಗಳನ್ನು ಉತ್ಪಾದಿಸಬಹುದು. ಇದಲ್ಲದೆ, ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಅವರು ಸ್ಪರ್ಶಿಸುತ್ತಾರೆ. ಉದಾಹರಣೆಗೆ, ಅವುಗಳನ್ನು DDL ಮತ್ತು DML ಡೇಟಾಬೇಸ್‌ಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಲಾಗಿದೆ, ಜೊತೆಗೆ ಬಳಕೆದಾರ ಕಾರ್ಯಗಳು (UDF ಅನ್ನು ಸಂಕೇತಿಸಲಾಗಿದೆ).

ವಾಸ್ತವದಲ್ಲಿ, SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ಒಂದೇ ರೀತಿಯ ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಅವುಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಪ್ರಯೋಜನಗಳನ್ನು ಹೊಂದಿವೆ. ಭದ್ರತೆ, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ನಮ್ಯತೆ, ಉತ್ಪಾದಕತೆ - ಇವೆಲ್ಲವೂ ಡೇಟಾಬೇಸ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಹೆಚ್ಚು ಹೆಚ್ಚು ಬಳಕೆದಾರರನ್ನು ಆಕರ್ಷಿಸುತ್ತದೆ. 2005-2010ರಲ್ಲಿ ಮೈಕ್ರೋಸಾಫ್ಟ್‌ನಿಂದ "SQL ಸರ್ವರ್" ಎಂಬ ಪ್ರೋಗ್ರಾಂ ಬಿಡುಗಡೆಯಾದಾಗ ಕಾರ್ಯವಿಧಾನಗಳ ಗರಿಷ್ಠ ಜನಪ್ರಿಯತೆಯು ಸಂಭವಿಸಿತು. ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಸ್ಟುಡಿಯೋ" ಅದರ ಸಹಾಯದಿಂದ, ಡೇಟಾಬೇಸ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು ಹೆಚ್ಚು ಸುಲಭ, ಹೆಚ್ಚು ಪ್ರಾಯೋಗಿಕ ಮತ್ತು ಅನುಕೂಲಕರವಾಗಿದೆ. ವರ್ಷದಿಂದ ವರ್ಷಕ್ಕೆ, ಇದು ಪ್ರೋಗ್ರಾಮರ್ಗಳಲ್ಲಿ ಜನಪ್ರಿಯತೆಯನ್ನು ಗಳಿಸಿತು. ಇಂದು ಇದು ಸಂಪೂರ್ಣವಾಗಿ ಪರಿಚಿತ ಪ್ರೋಗ್ರಾಂ ಆಗಿದೆ, ಇದು ಡೇಟಾಬೇಸ್ಗಳೊಂದಿಗೆ "ಸಂವಹನ" ಮಾಡುವ ಬಳಕೆದಾರರಿಗೆ ಎಕ್ಸೆಲ್ಗೆ ಸಮನಾಗಿರುತ್ತದೆ.

ಕಾರ್ಯವಿಧಾನವನ್ನು ಕರೆಯುವಾಗ, ಅದನ್ನು ಸರ್ವರ್ ಇಲ್ಲದೆಯೇ ತಕ್ಷಣವೇ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ ಅನಗತ್ಯ ಪ್ರಕ್ರಿಯೆಗಳುಮತ್ತು ಬಳಕೆದಾರರ ಹಸ್ತಕ್ಷೇಪ. ಇದರ ನಂತರ, ನೀವು ಯಾವುದೇ ಅಳಿಸುವಿಕೆ, ಮರಣದಂಡನೆ ಅಥವಾ ಮಾರ್ಪಾಡುಗಳನ್ನು ಕೈಗೊಳ್ಳಬಹುದು. ಡಿಡಿಎಲ್ ಆಪರೇಟರ್ ಈ ಎಲ್ಲದಕ್ಕೂ ಜವಾಬ್ದಾರನಾಗಿರುತ್ತಾನೆ, ಅವರು ವಸ್ತುಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಅತ್ಯಂತ ಸಂಕೀರ್ಣವಾದ ಕ್ರಿಯೆಗಳನ್ನು ಮಾಡುತ್ತಾರೆ. ಇದಲ್ಲದೆ, ಇದೆಲ್ಲವೂ ಬಹಳ ಬೇಗನೆ ನಡೆಯುತ್ತದೆ, ಮತ್ತು ಸರ್ವರ್ ವಾಸ್ತವವಾಗಿ ಲೋಡ್ ಆಗುವುದಿಲ್ಲ. ಈ ವೇಗ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯು ಬಳಕೆದಾರರಿಂದ ಸರ್ವರ್‌ಗೆ ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಮಾಹಿತಿಯನ್ನು ತ್ವರಿತವಾಗಿ ವರ್ಗಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಯಾಗಿ.

ಮಾಹಿತಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಈ ತಂತ್ರಜ್ಞಾನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು, ಹಲವಾರು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿವೆ. ಇವುಗಳಲ್ಲಿ, ಉದಾಹರಣೆಗೆ, ಒರಾಕಲ್‌ನಿಂದ PL/SQL, ಇಂಟರ್‌ಬೇಸ್ ಮತ್ತು ಫೈರ್‌ಬರ್ಡ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ PSQL, ಹಾಗೆಯೇ ಕ್ಲಾಸಿಕ್ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಟ್ರಾನ್ಸಾಕ್ಟ್-SQL. ಅವುಗಳನ್ನು ಎಲ್ಲಾ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದು ದೊಡ್ಡ ಡೇಟಾಬೇಸ್ ಪ್ರೊಸೆಸರ್‌ಗಳು ತಮ್ಮದೇ ಆದ ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಅಂತಹ ಮಾಹಿತಿಯನ್ನು ನಿರ್ವಹಿಸುವವರು ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಂದ ಅನಧಿಕೃತ ಪ್ರವೇಶದಿಂದ ರಕ್ಷಿಸಲು ಮತ್ತು ಅದರ ಪ್ರಕಾರ, ಕೆಲವು ಡೇಟಾದ ರಚನೆ, ಮಾರ್ಪಾಡು ಅಥವಾ ಅಳಿಸುವಿಕೆಗೆ ಇದು ಅವಶ್ಯಕವಾಗಿದೆ.

ಉತ್ಪಾದಕತೆ

ಈ ಡೇಟಾಬೇಸ್ ವಸ್ತುಗಳನ್ನು ವಿವಿಧ ರೀತಿಯಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಬಹುದು. ಇದು ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ವಿಧಾನವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ, ಶ್ರಮ ಮತ್ತು ಸಮಯವನ್ನು ಉಳಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಕಾರ್ಯವಿಧಾನವನ್ನು ಸ್ವತಃ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ, ಇದು ಸರ್ವರ್ ಮತ್ತು ಬಳಕೆದಾರರ ನಡುವಿನ ಸಂವಹನದಲ್ಲಿ ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ಕಳೆಯುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ಮಾಡ್ಯೂಲ್ ಅನ್ನು ರಿಪ್ರೋಗ್ರಾಮ್ ಮಾಡಬಹುದು ಮತ್ತು ಬದಲಾಯಿಸಬಹುದು ಸರಿಯಾದ ದಿಕ್ಕುಸಂಪೂರ್ಣವಾಗಿ ಯಾವುದೇ ಕ್ಷಣದಲ್ಲಿ. SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಪ್ರಾರಂಭಿಸುವ ವೇಗವನ್ನು ವಿಶೇಷವಾಗಿ ಗಮನಿಸುವುದು ಯೋಗ್ಯವಾಗಿದೆ: ಈ ಪ್ರಕ್ರಿಯೆಯು ಅದರಂತೆಯೇ ಇತರರಿಗಿಂತ ವೇಗವಾಗಿ ಸಂಭವಿಸುತ್ತದೆ, ಇದು ಅನುಕೂಲಕರ ಮತ್ತು ಸಾರ್ವತ್ರಿಕವಾಗಿಸುತ್ತದೆ.

ಸುರಕ್ಷತೆ

ಈ ರೀತಿಯ ಮಾಹಿತಿ ಸಂಸ್ಕರಣೆಯು ಒಂದೇ ರೀತಿಯ ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಭಿನ್ನವಾಗಿದೆ, ಅದು ಖಾತರಿ ನೀಡುತ್ತದೆ ಹೆಚ್ಚಿದ ಭದ್ರತೆ. ಇತರ ಬಳಕೆದಾರರಿಂದ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಹೊರಗಿಡಬಹುದು ಎಂಬ ಅಂಶದಿಂದ ಇದನ್ನು ಖಾತ್ರಿಪಡಿಸಲಾಗಿದೆ. ಮಾಹಿತಿಯ ಪ್ರತಿಬಂಧದ ಭಯವಿಲ್ಲದೆ ಅಥವಾ ನಿರ್ವಾಹಕರು ಅವರೊಂದಿಗೆ ಸ್ವತಂತ್ರವಾಗಿ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಕೈಗೊಳ್ಳಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ ಅನಧಿಕೃತ ಪ್ರವೇಶಡೇಟಾಬೇಸ್‌ಗೆ.

ಡೇಟಾ ವರ್ಗಾವಣೆ

SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ನಡುವಿನ ಸಂಬಂಧ ಮತ್ತು ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ನಿಯತಾಂಕಗಳು ಮತ್ತು ರಿಟರ್ನ್ ಮೌಲ್ಯಗಳ ಬಳಕೆಯಲ್ಲಿದೆ. ಎರಡನೆಯದು ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ಡೇಟಾವನ್ನು ರವಾನಿಸಬೇಕಾಗಿಲ್ಲ, ಆದರೆ ಈ ಮಾಹಿತಿಯನ್ನು (ಮುಖ್ಯವಾಗಿ ಬಳಕೆದಾರರ ಕೋರಿಕೆಯ ಮೇರೆಗೆ) SQL ಗಾಗಿ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವು ತನ್ನ ಕೆಲಸವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ, ಅದು ಡೇಟಾ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಹಿಂದಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ (ಆದರೆ, ಮತ್ತೆ, ಐಚ್ಛಿಕವಾಗಿ) ಅದನ್ನು ಬಳಸಿದ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ವಿವಿಧ ವಿಧಾನಗಳು, ಅದರ ಸಹಾಯದಿಂದ ಸಂಗ್ರಹಿಸಿದ SQL ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ಕರೆ ಮತ್ತು ರಿಟರ್ನ್ ಎರಡನ್ನೂ ಮಾಡಬಹುದು, ಉದಾಹರಣೆಗೆ:

ಔಟ್ಪುಟ್ ಪ್ರಕಾರದ ನಿಯತಾಂಕವನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸುವುದು;

ರಿಟರ್ನ್ ಆಪರೇಟರ್ ಬಳಸಿ ಡೇಟಾವನ್ನು ರವಾನಿಸುವುದು;

ಆಯ್ದ ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ರವಾನಿಸುವುದು.

ಈ ಪ್ರಕ್ರಿಯೆಯು ಒಳಗಿನಿಂದ ಹೇಗೆ ಕಾಣುತ್ತದೆ ಎಂಬುದನ್ನು ಈಗ ಲೆಕ್ಕಾಚಾರ ಮಾಡೋಣ.

1. SQL ನಲ್ಲಿ EXEC ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಿ

ನೀವು MS SQL (ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ ಸ್ಟುಡಿಯೋ) ನಲ್ಲಿ ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಬಹುದು. ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಿದ ನಂತರ, ಅದನ್ನು ಡೇಟಾಬೇಸ್‌ನ ಪ್ರೊಗ್ರಾಮೆಬಲ್ ನೋಡ್‌ನಲ್ಲಿ ಪಟ್ಟಿಮಾಡಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಸೃಷ್ಟಿ ಕಾರ್ಯವಿಧಾನವನ್ನು ಆಪರೇಟರ್‌ನಿಂದ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಕಾರ್ಯಗತಗೊಳಿಸಲು, SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು ವಸ್ತುವಿನ ಹೆಸರನ್ನು ಒಳಗೊಂಡಿರುವ EXEC ಪ್ರಕ್ರಿಯೆಯನ್ನು ಬಳಸುತ್ತವೆ.

ನೀವು ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಿದಾಗ, ಅದರ ಹೆಸರು ಮೊದಲು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ, ನಂತರ ಅದಕ್ಕೆ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ನಿಯತಾಂಕಗಳನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ. ನಿಯತಾಂಕಗಳು ಐಚ್ಛಿಕವಾಗಿರಬಹುದು. ಪ್ಯಾರಾಮೀಟರ್ (ಗಳು) ನಂತರ, ಅಂದರೆ, ಕಾರ್ಯವಿಧಾನದ ದೇಹವನ್ನು ಬರೆಯಲಾಗಿದೆ, ಕೆಲವು ಅಗತ್ಯ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಗಿದೆ.

ಅಂಶವೆಂದರೆ ದೇಹವು ಅದರಲ್ಲಿರುವ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ಹೊಂದಬಹುದು ಮತ್ತು ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಈ ಅಸ್ಥಿರಗಳು ಸಹ ಸ್ಥಳೀಯವಾಗಿರುತ್ತವೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಅವುಗಳನ್ನು ಮೈಕ್ರೋಸಾಫ್ಟ್ SQL ಸರ್ವರ್ ಕಾರ್ಯವಿಧಾನದ ದೇಹದಲ್ಲಿ ಮಾತ್ರ ವೀಕ್ಷಿಸಬಹುದು. ಈ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.

ಆದ್ದರಿಂದ, ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸಲು, ನಮಗೆ ಕಾರ್ಯವಿಧಾನದ ಹೆಸರು ಮತ್ತು ಕಾರ್ಯವಿಧಾನದ ದೇಹವಾಗಿ ಕನಿಷ್ಠ ಒಂದು ಪ್ಯಾರಾಮೀಟರ್ ಅಗತ್ಯವಿದೆ. ಎಂಬುದನ್ನು ಗಮನಿಸಿ ಅತ್ಯುತ್ತಮ ಆಯ್ಕೆಈ ಸಂದರ್ಭದಲ್ಲಿ, ವರ್ಗೀಕರಣದಲ್ಲಿ ಸ್ಕೀಮಾದ ಹೆಸರಿನೊಂದಿಗೆ ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸುವುದು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು.

ಕಾರ್ಯವಿಧಾನದ ದೇಹವು ಯಾವುದೇ ರೀತಿಯದ್ದಾಗಿರಬಹುದು, ಉದಾಹರಣೆಗೆ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸುವುದು, ಟೇಬಲ್‌ನ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಾಲುಗಳನ್ನು ಸೇರಿಸುವುದು, ಡೇಟಾಬೇಸ್‌ನ ಪ್ರಕಾರ ಮತ್ತು ಸ್ವರೂಪವನ್ನು ಸ್ಥಾಪಿಸುವುದು ಇತ್ಯಾದಿ. ಆದಾಗ್ಯೂ, ಕಾರ್ಯವಿಧಾನದ ದೇಹವು ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಅದರೊಳಗೆ ನಿರ್ವಹಿಸುವುದನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ. ಕೆಲವು ಪ್ರಮುಖ ಮಿತಿಗಳನ್ನು ಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ:

ದೇಹವು ಯಾವುದೇ ಇತರ ಸಂಗ್ರಹಿಸಿದ ವಿಧಾನವನ್ನು ರಚಿಸಬಾರದು;

ದೇಹವು ವಸ್ತುವಿನ ತಪ್ಪು ಅನಿಸಿಕೆ ಸೃಷ್ಟಿಸಬಾರದು;

ದೇಹವು ಯಾವುದೇ ಪ್ರಚೋದಕಗಳನ್ನು ರಚಿಸಬಾರದು.

2. ಕಾರ್ಯವಿಧಾನದ ದೇಹದಲ್ಲಿ ವೇರಿಯಬಲ್ ಅನ್ನು ಹೊಂದಿಸುವುದು

ಕಾರ್ಯವಿಧಾನದ ದೇಹಕ್ಕೆ ನೀವು ಅಸ್ಥಿರಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಮಾಡಬಹುದು, ಮತ್ತು ನಂತರ ಅವರು ಕಾರ್ಯವಿಧಾನದ ದೇಹದಲ್ಲಿ ಪ್ರತ್ಯೇಕವಾಗಿ ವಾಸಿಸುತ್ತಾರೆ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ದೇಹದ ಆರಂಭದಲ್ಲಿ ಅಸ್ಥಿರಗಳನ್ನು ರಚಿಸುವುದು ಉತ್ತಮ ಅಭ್ಯಾಸವಾಗಿದೆ. ಆದರೆ ನೀವು ನೀಡಿದ ವಸ್ತುವಿನ ದೇಹದಲ್ಲಿ ಎಲ್ಲಿಯಾದರೂ ಅಸ್ಥಿರಗಳನ್ನು ಹೊಂದಿಸಬಹುದು.

ಕೆಲವೊಮ್ಮೆ ನೀವು ಬಹು ಅಸ್ಥಿರಗಳನ್ನು ಒಂದು ಸಾಲಿನಲ್ಲಿ ಹೊಂದಿಸಿರುವುದನ್ನು ಗಮನಿಸಬಹುದು, ಮತ್ತು ಪ್ರತಿ ವೇರಿಯಬಲ್ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಲಾಗುತ್ತದೆ. ವೇರಿಯಬಲ್ ಅನ್ನು @ ನೊಂದಿಗೆ ಪೂರ್ವಪ್ರತ್ಯಯ ಮಾಡಲಾಗಿದೆ ಎಂಬುದನ್ನು ಸಹ ಗಮನಿಸಿ. ಕಾರ್ಯವಿಧಾನದ ದೇಹದಲ್ಲಿ ನೀವು ಎಲ್ಲಿ ಬೇಕಾದರೂ ವೇರಿಯಬಲ್ ಅನ್ನು ಹೊಂದಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, @NAME1 ವೇರಿಯೇಬಲ್ ಅನ್ನು ಕಾರ್ಯವಿಧಾನದ ಭಾಗದ ಕೊನೆಯಲ್ಲಿ ಘೋಷಿಸಬಹುದು. ಡಿಕ್ಲೇರ್ಡ್ ವೇರಿಯಬಲ್‌ಗೆ ಮೌಲ್ಯವನ್ನು ನಿಯೋಜಿಸಲು, ವೈಯಕ್ತಿಕ ಡೇಟಾದ ಗುಂಪನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಒಂದೇ ಸಾಲಿನಲ್ಲಿ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ವೇರಿಯೇಬಲ್ ಅನ್ನು ಘೋಷಿಸುವ ಪರಿಸ್ಥಿತಿಗಿಂತ ಭಿನ್ನವಾಗಿ, ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ವೈಯಕ್ತಿಕ ಡೇಟಾವನ್ನು ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ.

ಬಳಕೆದಾರರು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುತ್ತಾರೆ: "ಒಂದು ಕಾರ್ಯವಿಧಾನದ ದೇಹದಲ್ಲಿ ಒಂದು ಹೇಳಿಕೆಯಲ್ಲಿ ಬಹು ಮೌಲ್ಯಗಳನ್ನು ಹೇಗೆ ನಿಯೋಜಿಸುವುದು?" ಸರಿ. ಇದು ಆಸಕ್ತಿದಾಯಕ ಪ್ರಶ್ನೆಯಾಗಿದೆ, ಆದರೆ ನೀವು ಯೋಚಿಸುವುದಕ್ಕಿಂತ ಇದನ್ನು ಮಾಡುವುದು ತುಂಬಾ ಸುಲಭ. ಉತ್ತರ: "ಆಯ್ಕೆ ವರ್ = ಮೌಲ್ಯ" ದಂತಹ ಜೋಡಿಗಳನ್ನು ಬಳಸುವುದು. ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸುವ ಮೂಲಕ ನೀವು ಈ ಜೋಡಿಗಳನ್ನು ಬಳಸಬಹುದು.

ಹೆಚ್ಚೆಂದರೆ ವಿವಿಧ ಉದಾಹರಣೆಗಳುಜನರು ಸರಳವಾದ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸುವುದನ್ನು ಮತ್ತು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದನ್ನು ತೋರಿಸುತ್ತಾರೆ. ಆದಾಗ್ಯೂ, ಒಂದು ಕಾರ್ಯವಿಧಾನವು ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಬಹುದು, ಅದು ಕರೆಯುವ ಪ್ರಕ್ರಿಯೆಯು ಅದರ ಹತ್ತಿರ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ (ಆದರೆ ಯಾವಾಗಲೂ ಅಲ್ಲ). ಅವು ಹೊಂದಿಕೆಯಾದರೆ, ದೇಹದೊಳಗೆ ಅನುಗುಣವಾದ ಪ್ರಕ್ರಿಯೆಗಳು ಪ್ರಾರಂಭವಾಗುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ನೀವು ಕರೆ ಮಾಡುವವರಿಂದ ನಗರ ಮತ್ತು ಪ್ರದೇಶವನ್ನು ಸ್ವೀಕರಿಸುವ ವಿಧಾನವನ್ನು ರಚಿಸಿದರೆ ಮತ್ತು ಅನುಗುಣವಾದ ನಗರ ಮತ್ತು ಪ್ರದೇಶಕ್ಕೆ ಎಷ್ಟು ಲೇಖಕರು ಸೇರಿದ್ದಾರೆ ಎಂಬುದರ ಕುರಿತು ಡೇಟಾವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಈ ಪ್ರಕ್ರಿಯೆಯು ಈ ಲೇಖಕರ ಎಣಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಪಬ್‌ಗಳಂತಹ ಡೇಟಾಬೇಸ್‌ನ ಲೇಖಕರ ಕೋಷ್ಟಕಗಳನ್ನು ಪ್ರಶ್ನಿಸುತ್ತದೆ. ಈ ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ಪಡೆಯಲು, ಉದಾಹರಣೆಗೆ, Google ಡೌನ್‌ಲೋಡ್‌ಗಳು SQL ಸ್ಕ್ರಿಪ್ಟ್ SQL2005 ಪುಟದಿಂದ.

ಹಿಂದಿನ ಉದಾಹರಣೆಯಲ್ಲಿ, ಕಾರ್ಯವಿಧಾನವು ಎರಡು ನಿಯತಾಂಕಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಅದು ಆಂಗ್ಲ ಭಾಷೆಷರತ್ತುಬದ್ಧವಾಗಿ @ರಾಜ್ಯ ಮತ್ತು @ನಗರ ಎಂದು ಕರೆಯಲಾಗುವುದು. ಡೇಟಾ ಪ್ರಕಾರವು ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಪ್ರಕಾರಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ಕಾರ್ಯವಿಧಾನದ ದೇಹವು ಆಂತರಿಕ ಅಸ್ಥಿರ @TotalAuthors ಅನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಈ ವೇರಿಯಬಲ್ ಅನ್ನು ಲೇಖಕರ ಸಂಖ್ಯೆಯನ್ನು ಪ್ರದರ್ಶಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಮುಂದೆ ಪ್ರಶ್ನೆ ಆಯ್ಕೆ ವಿಭಾಗ ಬರುತ್ತದೆ, ಅದು ಎಲ್ಲವನ್ನೂ ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, ಲೆಕ್ಕಾಚಾರದ ಮೌಲ್ಯವನ್ನು ಮುದ್ರಣ ಹೇಳಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಔಟ್ಪುಟ್ ವಿಂಡೋದಲ್ಲಿ ಮುದ್ರಿಸಲಾಗುತ್ತದೆ.

SQL ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು

ಕಾರ್ಯವಿಧಾನವನ್ನು ನಿರ್ವಹಿಸಲು ಎರಡು ಮಾರ್ಗಗಳಿವೆ. ಮೊದಲ ಮಾರ್ಗವು ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಹಾದುಹೋಗುವ ಮೂಲಕ, ಕಾರ್ಯವಿಧಾನದ ಹೆಸರಿನ ನಂತರ ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಪಟ್ಟಿಯನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ನಾವು ಎರಡು ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಹೇಳೋಣ (ಹಿಂದಿನ ಉದಾಹರಣೆಯಂತೆ). ಈ ಮೌಲ್ಯಗಳನ್ನು @State ಮತ್ತು @City ಕಾರ್ಯವಿಧಾನದ ನಿಯತಾಂಕ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ನಿಯತಾಂಕಗಳನ್ನು ಹಾದುಹೋಗುವ ಈ ವಿಧಾನದಲ್ಲಿ, ಆದೇಶವು ಮುಖ್ಯವಾಗಿದೆ. ಈ ವಿಧಾನವನ್ನು ಆರ್ಡಿನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪಾಸಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಎರಡನೆಯ ವಿಧಾನದಲ್ಲಿ, ನಿಯತಾಂಕಗಳನ್ನು ಈಗಾಗಲೇ ನೇರವಾಗಿ ನಿಯೋಜಿಸಲಾಗಿದೆ, ಮತ್ತು ಈ ಸಂದರ್ಭದಲ್ಲಿ ಆದೇಶವು ಮುಖ್ಯವಲ್ಲ. ಈ ಎರಡನೆಯ ವಿಧಾನವನ್ನು ಪಾಸಿಂಗ್ ಹೆಸರಿನ ಆರ್ಗ್ಯುಮೆಂಟ್ಸ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.

ಕಾರ್ಯವಿಧಾನವು ವಿಶಿಷ್ಟವಾದ ಒಂದರಿಂದ ಸ್ವಲ್ಪ ವಿಚಲನಗೊಳ್ಳಬಹುದು. ಹಿಂದಿನ ಉದಾಹರಣೆಯಲ್ಲಿ ಎಲ್ಲವೂ ಒಂದೇ ಆಗಿರುತ್ತದೆ, ಆದರೆ ಇಲ್ಲಿ ಮಾತ್ರ ನಿಯತಾಂಕಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಅಂದರೆ, @City ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಮೊದಲು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು @State ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯದ ಪಕ್ಕದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಡೀಫಾಲ್ಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರತ್ಯೇಕವಾಗಿ ಹೈಲೈಟ್ ಮಾಡಲಾಗುತ್ತದೆ. SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಕೇವಲ ನಿಯತಾಂಕಗಳಾಗಿ ರವಾನಿಸಲಾಗುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಒದಗಿಸಿದ, "UT" ಪ್ಯಾರಾಮೀಟರ್ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ "CA" ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಎರಡನೇ ಎಕ್ಸಿಕ್ಯೂಶನ್‌ನಲ್ಲಿ, @City ಪ್ಯಾರಾಮೀಟರ್‌ಗೆ ಕೇವಲ ಒಂದು ಆರ್ಗ್ಯುಮೆಂಟ್ ಮೌಲ್ಯವನ್ನು ರವಾನಿಸಲಾಗುತ್ತದೆ ಮತ್ತು @State ಪ್ಯಾರಾಮೀಟರ್ "CA" ನ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಅನುಭವಿ ಪ್ರೋಗ್ರಾಮರ್‌ಗಳು ಎಲ್ಲಾ ವೇರಿಯಬಲ್‌ಗಳು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಪ್ಯಾರಾಮೀಟರ್ ಪಟ್ಟಿಯ ಕೊನೆಯಲ್ಲಿ ನೆಲೆಗೊಂಡಿರಬೇಕು ಎಂದು ಸಲಹೆ ನೀಡುತ್ತಾರೆ. ಇಲ್ಲದಿದ್ದರೆ ಮರಣದಂಡನೆ ಸಾಧ್ಯವಿಲ್ಲ, ಮತ್ತು ನಂತರ ನೀವು ಹೆಸರಿಸಲಾದ ವಾದಗಳನ್ನು ಹಾದುಹೋಗುವುದರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬೇಕು, ಅದು ಮುಂದೆ ಮತ್ತು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿದೆ.

4. SQL ಸರ್ವರ್ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು: ರಿಟರ್ನ್ ವಿಧಾನಗಳು

ಮೂರು ಇವೆ ಪ್ರಮುಖ ಮಾರ್ಗಗಳುಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದಲ್ಲಿ ಡೇಟಾವನ್ನು ಕಳುಹಿಸುವುದು. ಅವುಗಳನ್ನು ಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ:

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ;

ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನದ ಪ್ಯಾರಾಮೀಟರ್ ಔಟ್ಪುಟ್;

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳಲ್ಲಿ ಒಂದನ್ನು ಆರಿಸುವುದು.

4.1 SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳಿಂದ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವುದು

ಈ ತಂತ್ರದಲ್ಲಿ, ಒಂದು ಕಾರ್ಯವಿಧಾನವು ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್‌ಗೆ ಮೌಲ್ಯವನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಒಂದು ಕಾರ್ಯವಿಧಾನವು ಸ್ಥಿರ ಮೌಲ್ಯವನ್ನು ನೇರವಾಗಿ ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಕೆಳಗಿನ ಉದಾಹರಣೆಯಲ್ಲಿ, ಒಟ್ಟು ಲೇಖಕರ ಸಂಖ್ಯೆಯನ್ನು ಹಿಂದಿರುಗಿಸುವ ವಿಧಾನವನ್ನು ನಾವು ರಚಿಸಿದ್ದೇವೆ. ನೀವು ಹಿಂದಿನ ಕಾರ್ಯವಿಧಾನಗಳೊಂದಿಗೆ ಈ ಕಾರ್ಯವಿಧಾನವನ್ನು ಹೋಲಿಸಿದರೆ, ಮುದ್ರಣ ಮೌಲ್ಯವು ವ್ಯತಿರಿಕ್ತವಾಗಿದೆ ಎಂದು ನೀವು ನೋಡಬಹುದು.

ಈಗ ಕಾರ್ಯವಿಧಾನವನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಮತ್ತು ಅದರ ರಿಟರ್ನ್ ಮೌಲ್ಯವನ್ನು ಹೇಗೆ ಮುದ್ರಿಸುವುದು ಎಂದು ನೋಡೋಣ. ಕಾರ್ಯವಿಧಾನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ವೇರಿಯಬಲ್ ಮತ್ತು ಮುದ್ರಣವನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ, ಇದನ್ನು ಈ ಸಂಪೂರ್ಣ ಪ್ರಕ್ರಿಯೆಯ ನಂತರ ನಡೆಸಲಾಗುತ್ತದೆ. ಪ್ರಿಂಟ್ ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ನ ಬದಲಿಗೆ, ನೀವು @RetValue ಮತ್ತು OutputValue ನಂತಹ ಆಯ್ಕೆಮಾಡಿದ ಹೇಳಿಕೆಯನ್ನು ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ಗಮನಿಸಿ.

4.2 SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ಪ್ಯಾರಾಮೀಟರ್ ಔಟ್‌ಪುಟ್

ಪ್ರತಿಕ್ರಿಯೆ ಮೌಲ್ಯವನ್ನು ಒಂದೇ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಲು ಬಳಸಬಹುದು, ಅದು ನಾವು ಹಿಂದಿನ ಉದಾಹರಣೆಯಲ್ಲಿ ನೋಡಿದ್ದೇವೆ. ಔಟ್‌ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಬಳಸುವುದರಿಂದ ಕರೆ ಮಾಡುವವರಿಗೆ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ವೇರಿಯಬಲ್ ಮೌಲ್ಯಗಳನ್ನು ಕಳುಹಿಸಲು ಕಾರ್ಯವಿಧಾನವನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಕಾರ್ಯವಿಧಾನವನ್ನು ರಚಿಸುವಾಗ ಔಟ್ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಈ ಕೀವರ್ಡ್ "ಔಟ್ಪುಟ್" ನಿಂದ ನಿಖರವಾಗಿ ಗೊತ್ತುಪಡಿಸಲಾಗುತ್ತದೆ. ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಔಟ್ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ ನೀಡಿದರೆ, ಕಾರ್ಯವಿಧಾನದ ವಸ್ತುವು ಅದಕ್ಕೆ ಮೌಲ್ಯವನ್ನು ನಿಯೋಜಿಸಬೇಕು. SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು, ಅದರ ಉದಾಹರಣೆಗಳನ್ನು ಕೆಳಗೆ ನೋಡಬಹುದು, ಈ ಸಂದರ್ಭದಲ್ಲಿ ಸಾರಾಂಶ ಮಾಹಿತಿಯೊಂದಿಗೆ ಹಿಂತಿರುಗಿ.

ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ ಎರಡು ಔಟ್‌ಪುಟ್ ಹೆಸರುಗಳಿರುತ್ತವೆ: @TotalAuthors ಮತ್ತು @TotalNoContract. ಅವುಗಳನ್ನು ನಿಯತಾಂಕಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಸೂಚಿಸಲಾಗುತ್ತದೆ. ಈ ಅಸ್ಥಿರಗಳು ಕಾರ್ಯವಿಧಾನದ ದೇಹದೊಳಗೆ ಮೌಲ್ಯಗಳನ್ನು ನಿಯೋಜಿಸುತ್ತವೆ. ನಾವು ಔಟ್ಪುಟ್ ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸುವಾಗ, ಕರೆ ಮಾಡುವವಕಾರ್ಯವಿಧಾನದ ದೇಹದೊಳಗೆ ಹೊಂದಿಸಲಾದ ಮೌಲ್ಯವನ್ನು ನೋಡಬಹುದು.

ಅಲ್ಲದೆ, ಹಿಂದಿನ ಸನ್ನಿವೇಶದಲ್ಲಿ, MS SQL ಸರ್ವರ್ ಔಟ್‌ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್‌ನಲ್ಲಿ ಹೊಂದಿಸಲಾದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಂಗ್ರಹಿಸಿದ ಮೌಲ್ಯಗಳನ್ನು ನೋಡಲು ಎರಡು ಅಸ್ಥಿರಗಳನ್ನು ಘೋಷಿಸಲಾಗುತ್ತದೆ. ನಂತರ "CA" ನಿಯತಾಂಕದ ಸಾಮಾನ್ಯ ಮೌಲ್ಯವನ್ನು ಪೂರೈಸುವ ಮೂಲಕ ಕಾರ್ಯವಿಧಾನವನ್ನು ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ಕೆಳಗಿನ ಆಯ್ಕೆಗಳುಔಟ್ಪುಟ್ ಮತ್ತು ಆದ್ದರಿಂದ ಡಿಕ್ಲೇರ್ಡ್ ಅಸ್ಥಿರಗಳನ್ನು ರವಾನಿಸಲಾಗುತ್ತದೆ ನಿಗದಿತ ರೀತಿಯಲ್ಲಿ. ಅಸ್ಥಿರಗಳ ಮೂಲಕ ಹಾದುಹೋಗುವಾಗ ಔಟ್ಪುಟ್ ಅನ್ನು ಗಮನಿಸಿ ಕೀವರ್ಡ್ಎಂದೂ ಇಲ್ಲಿ ಕೇಳಿದರು. ಕಾರ್ಯವಿಧಾನವು ಯಶಸ್ವಿಯಾಗಿ ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಔಟ್ಪುಟ್ ನಿಯತಾಂಕಗಳಿಂದ ಹಿಂತಿರುಗಿಸಲಾದ ಮೌಲ್ಯಗಳನ್ನು ಸಂದೇಶ ವಿಂಡೋದಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ.

4.3 SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳಲ್ಲಿ ಒಂದನ್ನು ಆಯ್ಕೆಮಾಡುವುದು

ಸಂಗ್ರಹಿಸಿದ ಪ್ರಕ್ರಿಯೆಗೆ ಡೇಟಾ ಟೇಬಲ್ (ರೆಕಾರ್ಡ್‌ಸೆಟ್) ಆಗಿ ಮೌಲ್ಯಗಳ ಗುಂಪನ್ನು ಹಿಂತಿರುಗಿಸಲು ಈ ತಂತ್ರವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಅದರಲ್ಲಿ SQL ಉದಾಹರಣೆ@AuthID ಪ್ಯಾರಾಮೀಟರ್‌ಗಳೊಂದಿಗೆ ಸಂಗ್ರಹಿಸಲಾದ ಕಾರ್ಯವಿಧಾನವು ಆ @AuthId ಪ್ಯಾರಾಮೀಟರ್ ಬಳಸಿ ಹಿಂತಿರುಗಿದ ದಾಖಲೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುವ ಮೂಲಕ ಲೇಖಕರ ಕೋಷ್ಟಕವನ್ನು ಪ್ರಶ್ನಿಸುತ್ತದೆ. ಆಪರೇಟರ್ ಆಯ್ಕೆಮಾಡಿಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನದ ಕರೆಗಾರನಿಗೆ ಏನು ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ, AuthId ಅನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಇಲ್ಲಿ ಈ ವಿಧಾನವು ಯಾವಾಗಲೂ ಒಂದು ದಾಖಲೆಯನ್ನು ಮಾತ್ರ ಹಿಂದಿರುಗಿಸುತ್ತದೆ ಅಥವಾ ಯಾವುದನ್ನೂ ಹಿಂತಿರುಗಿಸುವುದಿಲ್ಲ. ಆದರೆ ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ದಾಖಲೆಗಳನ್ನು ಹಿಂದಿರುಗಿಸಲು ಯಾವುದೇ ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿಲ್ಲ. ಬಹು ಮೊತ್ತವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಲೆಕ್ಕಹಾಕಿದ ಅಸ್ಥಿರಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಆಯ್ದ ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ಹಿಂತಿರುಗಿಸುವ ಉದಾಹರಣೆಗಳನ್ನು ನೋಡುವುದು ಅಸಾಮಾನ್ಯವೇನಲ್ಲ.

ಅಂತಿಮವಾಗಿ

ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವು ಸಾಕಷ್ಟು ಗಂಭೀರವಾಗಿದೆ ಸಾಫ್ಟ್ವೇರ್ ಮಾಡ್ಯೂಲ್, ಹಿಂದಿರುಗಿಸುವುದು ಅಥವಾ ರವಾನಿಸುವುದು, ಹಾಗೆಯೇ ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಧನ್ಯವಾದಗಳು ಅಗತ್ಯ ಅಸ್ಥಿರಗಳನ್ನು ಹೊಂದಿಸುವುದು. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನವು ಸರ್ವರ್‌ನಲ್ಲಿ ಸ್ವತಃ ಚಲಿಸುತ್ತದೆಯಾದ್ದರಿಂದ, ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ (ಕೆಲವು ಲೆಕ್ಕಾಚಾರಗಳಿಗೆ) ನಡುವೆ ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಡೇಟಾ ವಿನಿಮಯವನ್ನು ತಪ್ಪಿಸಬಹುದು. ಲೋಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ SQL ಸರ್ವರ್, ಇದು ಸಹಜವಾಗಿ, ಅವರ ಹೊಂದಿರುವವರಿಗೆ ಪ್ರಯೋಜನವನ್ನು ನೀಡುತ್ತದೆ. ಉಪವಿಧಗಳಲ್ಲಿ ಒಂದು T SQL ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳು, ಆದರೆ ಪ್ರಭಾವಶಾಲಿ ಡೇಟಾಬೇಸ್ಗಳನ್ನು ರಚಿಸುವವರಿಗೆ ಅವರ ಅಧ್ಯಯನವು ಅವಶ್ಯಕವಾಗಿದೆ. ಸಂಗ್ರಹಿಸಿದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಅಧ್ಯಯನ ಮಾಡುವಾಗ ಉಪಯುಕ್ತವಾದ ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಗಳು ಸಹ ಇವೆ, ಆದರೆ ವೃತ್ತಿಪರವಾಗಿ ಸೇರಿದಂತೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನಲ್ಲಿ ತೊಡಗಿಸಿಕೊಳ್ಳಲು ಯೋಜಿಸುವವರಿಗೆ ಇದು ಹೆಚ್ಚು ಅಗತ್ಯವಿದೆ.