“SQL සේවාදායකය ඔබට යහපතක් කර ගත හැකි දේ කේතයෙන් කිසි විටෙකත් නොකරන්න” - මෙය නරක නිර්මාණයක් සඳහා වූ වට්ටෝරුවක්ද?


210

එය අතළොස්සක් ස්ථානවල නැවත නැවතත් මා අසා ඇති අදහසකි. SQL හි පමණක් ගැටලුවක් විසඳීමට උත්සාහ කිරීම යම් මට්ටමක සංකීර්ණතාවයක් ඉක්මවා ගිය බව ඔබ වැඩි වශයෙන් හෝ අඩු වශයෙන් පිළිගනී.

අදහස පිටුපස ඇති තර්කනය නම්, බොහෝ අවස්ථාවන්හීදී, දත්ත සමුදා එන්ජිම ඔබට කේතයෙන් කළ හැකි ප්‍රමාණයට වඩා ඔබේ කාර්යය සම්පූර්ණ කිරීමේ වඩාත් කාර්යක්ෂම ක්‍රමයක් සොයා ගැනීමට වඩා හොඳ කාර්යයක් කරනු ඇත. විශේෂයෙන් දත්ත මත සිදුකරන මෙහෙයුම් වල ප්‍රති results ල කොන්දේසිගත කිරීම වැනි දේ සම්බන්ධයෙන්. නවීන එන්ජින් සමඟ J ලදායි ලෙස JIT'ing + ඔබේ විමසුමේ සංයුක්ත අනුවාදය හැඹිලිගත කිරීමෙන් එය මතුපිටින් අර්ථවත් වනු ඇත.

ප්‍රශ්නය වන්නේ ඔබේ දත්ත සමුදා එන්ජිම මේ ආකාරයෙන් උත්තේජනය කිරීම සහජයෙන්ම නරක නිර්මාණ භාවිතයක්ද (සහ ඇයි) යන්නයි. දත්ත සමුදාය තුළ සියලු තර්කනයන් පවතින විට රේඛා තවදුරටත් බොඳ වී යන අතර ඔබ එය ORM හරහා පහර දෙයි.


61
මෙය කල්පනාකාරීව ගත යුතු එක් කියමනකි. වෙනත් ඉංජිනේරුවෙකු 'මේසයෙන් තෝරන්න *' කර ඇති අතර, එහි වගන්තියක් භාවිතා කිරීම සහ තීරු නියම කිරීම වෙනුවට ප්‍රති result ල කට්ටලය හරහා සටන් කිරීම යමෙකුට හමු වූ විට එය කසයෙන් තළනු ලැබේ. නමුත් ඔබ එය බොහෝ දුරට ගෙන ගියහොත්, ඔබ අවසන් වන්නේ වෙනත් අවුලකිනි.
මයිකල් කෝන්

157
"කිසි විටෙකත්" හෝ "සැමවිටම" සමඟ වාක්‍ය ඛණ්ඩයක් ආරම්භ කිරීම සෑම විටම පාහේ නරක නිර්මාණයක් සඳහා වූ වට්ටෝරුවකි.
vsz

35
SQL හි ඕනෑවට වඩා දේවල් කිරීමට උත්සාහ කළ හැකි වුවත් , අවංකව පැවසිය හැකිය, වසර 30 ක සංවර්ධනය හා උපදේශනය තුළ, මම කිසි විටෙකත් එහි බරපතල සිද්ධියක් (සුළු ඒවා කිහිපයක්) දැක නැත. අනෙක් අතට, සංවර්ධකයින් SQL හි කළ යුතුව තිබූ "කේත" වලින් බොහෝ දේ කිරීමට උත්සාහ කරන බරපතල සිද්ධීන් සිය ගණනක් මම දැක ඇත්තෙමි. මම තවමත් ඔවුන්ව දකිනවා. නිතර ...
RBarryYoung

2
RMrEdmundo එය මෙටා වෙත ගෙන යන්න.
ta.speot.is

4
මෙම ප්‍රශ්නය එකකින් දෙකකි - එය බෙදිය යුතු යැයි මම සිතමි. 1) SQL හි කොපමණ ප්‍රමාණයක් කළ යුතුද? 2) DBMS හි කොපමණ ප්‍රමාණයක් කළ යුතුද? ගබඩා කළ පටිපාටි මැදට වැටේ. ගබඩා කර ඇති ක්‍රියා පටිපාටිවල කේත කර ඇති සම්පූර්ණ යෙදුම් මම දැක ඇත්තෙමි.
රිනියර්පොස්ට්

Answers:


326

ගිහියන්ගේ වචන වලින්:

මේවා SQL විසින් සාදන ලද ඒවා වන අතර, එය විශ්වාස කළත් නැතත්, මම කේතයෙන් කර ඇති බව දැක ඇත්තෙමි:

  • සම්බන්ධ වේ - කේතමය වශයෙන් එයට සංකීර්ණ අරාව හැසිරවීම අවශ්‍ය වේ
  • පෙරහන් දත්ත (කොහේද) - කේතමය වශයෙන් එයට ලැයිස්තු තුළ ඇති අයිතම අධික ලෙස ඇතුළු කිරීම සහ මකා දැමීම අවශ්‍ය වේ
  • තීරු තේරීම - කේතමය වශයෙන් එයට බර ලැයිස්තුවක් හෝ අරාව හැසිරවීමක් අවශ්‍ය වේ
  • සමස්ථ කාර්යයන් - කේතමය වශයෙන් එයට අගයන් සහ සංකීර්ණ ස්විච් අවස්ථා රඳවා ගැනීමට අරා අවශ්‍ය වේ
  • විදේශීය යතුරු අඛණ්ඩතාව - කේතමය වශයෙන් එයට ඇතුළත් කිරීමට පෙර විමසුම් අවශ්‍ය වන අතර කිසිවෙකු යෙදුමෙන් පිටත දත්ත භාවිතා නොකරනු ඇතැයි උපකල්පනය කරයි
  • ප්‍රාථමික යතුරු අඛණ්ඩතාව - කේතමය වශයෙන් එයට ඇතුළත් කිරීමට පෙර විමසුම් අවශ්‍ය වන අතර කිසිවෙකු යෙදුමෙන් පිටත දත්ත භාවිතා නොකරනු ඇතැයි උපකල්පනය කරයි

SQL හෝ RDBMS මත යැපීම වෙනුවට මේ දේවල් කිරීමෙන් අමතර වටිනාකමක් නැති කේත ටොන් ගණනක් ලිවීමට සිදුවේ , එයින් අදහස් වන්නේ නිදොස් කිරීම සහ නඩත්තු කිරීම සඳහා වැඩි කේතයක් යන්නයි. එය භයානක ලෙස උපකල්පනය කරන්නේ දත්ත සමුදාය ප්‍රවේශ වන්නේ යෙදුම හරහා පමණක් බවයි.


89
සෑම දෙයක්ම සිදුවන්නේ යෙදුම හරහා පමණක් බව එය භයානක ලෙස උපකල්පනය කරන බව පෙන්වා දීම සඳහා +10000000000.
HLGEM

11
kskynorth එය නරක දත්ත සමුදා නිර්මාණයකට මග පාදයි. මේ අනුව යමින් ඔබ වන දත්ත සමුදාය සමඟ අවසන් කළ හැකි එකම නිසා සියලු පසු සැකසුම් එය එසේ විය යුත්තේ එම යෙදුම විසින් අර්ථාන්විතව ප්රවේශ විය.
සයිරෙක්ස්

21
kskynorth ඔබේ යතුරු අඛණ්ඩතාව පවත්වා ගෙන යන බවට වග බලා ගැනීම සඳහා ඔබ කේතය මත විශ්වාසය තබන්නේ නම්, ඔබ RDBMS හි මූලික මූලධර්මයක් DB වෙතින් ඉවත් කරයි. එය තේරුමක් නැති දෙයක් වන හෙයින්, ඩීබී වෙත ප්‍රවේශ වන සෑම යෙදුමක්ම එම ක්‍රියාකාරීත්වය නිවැරදිව අනුකරණය කිරීමට වග බලා ගත යුතුය. ඩීබීට එය හැසිරවීමට ඉඩ නොදෙන්නේ මන්ද, එය නිර්මාණය කර ඇත්තේ එයයි. DB හට අනුපිටපත් යතුරු දේශීයව වළක්වා ගත හැකිය, උදාහරණයක් ලෙස.
බට්ල් බට්කස්

11
ගනුදෙනු අමතක කරන්න එපා!
Sklivvz

24
kskynorth: tl; dr: ඔබේ දත්ත ස්ථාවරව තබා ගන්නා නීති දත්ත ගබඩාවේ ක්‍රියාත්මක කළ යුතුය. එනම් මෙතෙක් ලියා අයදුම්පත් 99% ක්, දත්ත (එබැවින් දත්ත) සඳහා ජීවත් looooooooooong ඔබේ අයදුම් මැරිලා ගිහින් පසු. මම මේ බොහෝ දෙනෙක්, දැකලා තියෙනවා බොහෝ (නිසා {ඇතුලත් කරන්න පැරණි මෙහි වේදිකාව} ඒයි, අපි, / Windows / iPhone / ඇන්ඩ්රොයිඩ් මත අනුවාදය යෙදවීමට-නව-දෙයක්-ඕනෑම-අවශ්ය අපි මැරෙන 'වසර පහළ වතාවක් ll සත්කාරක හෝ Oracle දත්ත මෙහි හා නව UI එකක් නිර්මාණය එහි ). මෙම ප්‍රවණතාවය අද හෝ ඕනෑම වේලාවක නතර වීමට හේතුවක් නැත.
ද්විමය වොරියර්

123

"SQL සේවාදායකය ඔබට හොඳින් කළ හැකි දේ කේතයෙන් කිසි විටෙකත් නොකරන්න" යනුවෙන් මම එය නැවත ලියමි .

නූල් හැසිරවීම, රීජෙක්ස් වැඩ වැනි දේවල් මම SQL සේවාදායකයේ නොකරමි (SQL CLR හැර).

ඉහත කරුණු සම්බන්ධ වන්නේ - සම්බන්ධ වීම, මෙහෙයුම් සැකසීම සහ විමසීම් වැනි දේ ගැන ය. එහි පිටුපස ඇති අභිප්‍රාය වනුයේ බර එසවීමෙන් වැඩි ප්‍රමාණයක් SQL සේවාදායකයට පැවරීමයි (සමහර විට එය හොඳ ය) සහ හැකි තරම් IO ප්‍රමාණය අඩු කිරීම (එබැවින් SQL සම්බන්ධ වීමට ඉඩ දී WHEREවගන්තියක් සමඟ පෙරීමට ඉඩ දෙන්න. වෙනත් දත්ත වලට වඩා කුඩා දත්ත කට්ටලයක්).


27
යෙදුම් කේතයට වඩා SQL විසින් කළ හැකි සෑම දෙයක්ම SQL ස්තරයට දැමුවහොත්, වඩා හොඳ හෝ නරක සඳහා දත්ත සමුදායේ අවසන් වන ව්‍යාපාර තර්කනයන් රාශියක් ඇත. මම මෙය දැක ඇති අතර ඔව්, කාර්ය සාධනය තාරකා විය. නමුත් වාසනාවකට මෙන්, dev කණ්ඩායම සියල්ලන්ම යෙදුම් සංවර්ධනය සහ SQL ඉතා හොඳින් දැන සිටි නිසා දෙදෙනා අතර මායිම ඉතා අශෝභන විය. මම මෙය ආරම්භක ලක්ෂ්‍යයක් ලෙස යෝජනා නොකරමි, නමුත් පද්ධතිය විශාල වශයෙන් ජනප්‍රිය වූ පසු කාලයත් සමඟ කාර්ය සාධනය පිරිහී යයි.
ජිමී හොෆා

5
පා courses මාලා සඳහා අශ්වයන් innit guv?
StuperUser

28
Ather නාතන්ලොං ඔබේ SQL ප්‍රභව පාලනයේ තබා ගත නොහැකි යැයි බොහෝ අය තවමත් සිතන්නේ මන්දැයි මම නොදනිමි. මුලදී මූලාශ්‍ර පාලනයේ මුල සිටම දත්ත සමුදාය නිර්මාණය කිරීම සඳහා අවශ්‍ය සියලු ගබඩා කළ ක්‍රියා පටිපාටි / වගු ස්ක්‍රිප්ට් / යනාදිය අප සතුව තිබුණි, පසුව දෘශ්‍ය චිත්‍රාගාර දත්ත සමුදා ව්‍යාපෘති භාවිතා කරන ලදී. එය ව්‍යාපෘති නොමැතිව හොඳින් ක්‍රියාත්මක වූ අතර ඒවා සමඟ වඩා හොඳ විය. ඔබේ පද්ධතිය නිර්මාණය කිරීම සඳහා අවශ්‍ය අනෙකුත් වෙනස් කළ හැකි සෑම දෙයක්ම SQL අනුවාද පාලනය යටතේ තිබිය යුතුය! ඔබ විසින් නිර්මාණය කරන ලද ස්ක්‍රිප්ට් අනුවාද පාලනය යටතේ තබා ගන්නේ නම්, වෙනස් ස්ක්‍රිප්ට් භාවිතා නොකරන්න
ජිමී හොෆා

3
ඔබේ SQL හට REGEX මෙහෙයුම් සහ නූල් හැසිරවීම සඳහා සහය තිබේ නම්, ඒවා SQL වලින් කිරීම හොඳ තේරීමක් විය හැකිය.
කෙවින් ක්ලයින්

3
Athan නාතන්ලොං: මේ ආකාරයට සිතන්න, ඩීබී වගුවක් අර්ථ දැක්වෙන්නේ පෙළ ගොනුවක ලියා ඇති කේත කැබැල්ලකිනි, වාක්‍ය ඛණ්ඩය "වගුවක් සාදන්න ..." යන රේඛා ඔස්සේ ය. දැන් ඔබට එම පෙළ ගොනුව ඔබ කැමති ඕනෑම SCM එකක ගබඩා කළ හැකිය, හරියට ඔබට අවශ්‍ය ඕනෑම API එකක් කැඳවන ඔබේ ප්‍රියතම යෙදුම් භාෂාවෙන් DB වගු සෑදීමේ කේතය තිබේ නම්, ඔබ එම පෙළ ගොනුව ඔබේ SCM තුළ ගබඩා කරයි. මම හිතන්නේ ගැටළුවක් නම් සමහර අය සිතන්නේ ඩීබී යනු කෙසේ හෝ මැජික් තිරිසනුන් බවත්, ඔවුන් දන්නේ VB කේතය ලිවීමට (හෝ කුමක් හෝ) පමණක් බවත්, එබැවින් ඔවුන් සිතන්නේ ඔවුන් දන්නා යෙදුම් භාෂාව අනුව පමණක් බවත්ය.
gbjbaanb

47

SQL සේවාදායකය ඔබට යහපතක් කර ගත හැකි දේ කේතයෙන් කිසි විටෙකත් නොකරන්න (අවධාරණය මගේ ය)

පිළිතුර සඳහා යතුර නම්, ඔබ වෙනුවෙන් යමක් කිරීම වෙනුවට SQL හොඳින් යමක් කිරීම ගැන සොයා බැලිය යුතුය. SQL යනු පුදුමාකාර ලෙස බලවත් භාෂාවකි. ගොඩනංවන ලද කාර්යයන් සමඟ සම්බන්ධ වී, එයට බොහෝ දේ කළ හැකිය. කෙසේ වෙතත්, ඔබට SQL හි යමක් කළ හැකිය යන කාරණය ඇත්ත වශයෙන්ම එය SQL හි සිදු කිරීම සඳහා නිදහසට කරුණක් නොවිය යුතුය.

තීරණයක් ගැනීමට මගේ නිශ්චිත නිර්ණායක වන්නේ ඔබ ආපසු ලබා ගන්නා දත්ත ප්‍රමාණය සහ වට-සංචාර ගණන දෙස බැලීමයි: ඔබට කාර්යය සේවාදායකයට නැව්ගත කිරීමෙන් දත්ත ප්‍රමාණය අඩු කළ හැකි නම්, වට ගණන වැඩි නොකර. චාරිකා, එවිට කාර්යය සේවාදායකයට අයත් වේ; වට-සංචාර ගණන එකවර පහත වැටීමකින් තොරව දත්ත ප්‍රමාණය එලෙසම පවතී නම් හෝ වැඩි වේ නම්, කාර්යය අයත් වන්නේ ඔබේ කේතයට ය.

මෙම උදාහරණ සලකා බලන්න:

  • ඔබ උපන්දිනයක් ගබඩා කරන අතර, පරිශීලකයින් කණ්ඩායමක් සඳහා වයස ගණනය කළ යුතුය. ඔබට SQL සේවාදායකය අඩු කිරීම කළ හැකිය, නැතහොත් ඔබට එය ඔබේ කේතයෙන් කළ හැකිය. වට-චාරිකා ගණන එලෙසම පවතින අතර ඔබ වෙත යවන ලද දත්ත ප්‍රමාණය ඉහළ යයි. එබැවින් කේත පදනම් කරගත් විසඳුමක් ජය ගනී
  • ඔබ උපන්දිනයක් ගබඩා කර ඇති අතර, ඔබට වයස අවුරුදු 20 ත් 30 ත් අතර පරිශීලකයින් සොයා ගැනීමට අවශ්‍ය වේ. ඔබට සියලු පරිශීලකයින් නැවත සේවාදායකයා වෙත පැටවිය හැකිය, වයස සොයා ගැනීම සඳහා අඩු කිරීම කරන්න, පසුව පෙරීම කරන්න, නමුත් තර්කනය SQL සේවාදායකයට නැව්ගත කරන්න අතිරේක වට-චාරිකා අවශ්‍ය නොවී දත්ත ප්‍රමාණය අඩු කරනු ඇත; එබැවින් SQL මත පදනම් වූ විසඳුම ජය ගනී.

1
මම කොතැනක හෝ වැඩ කරන විට ව්‍යාපාර තර්කනය SQL සමඟ නිර්‍මාණවත් වූ විට, අපට විවිධ වට චාරිකා සමඟ කරදරයක් නොවීය; අපි පාලනය බලය රන් මධ්යන්ය සඳහා පහසුවෙන් සබඳතා ඉතා හොඳ වුවත් පාලනය ටිකක්, පහළට, එහි දමන එසේ බව, තනි පළමු ගුවන් ගමන සඳහා භාවිතා බහු ප්රතිඵලයක් කට්ටල
ජිමී Hoffa

2
+1 මෙය අපූරු පිළිතුරකි, මන්ද එය දෙපැත්තටම සහය දැක්වීමට ස්ථිර උදාහරණ ලබා දෙන බැවිනි.
බ්‍රැන්ඩන්

1
ඔබේ දෙවන උදාහරණයේ. ඔබ කියන්නේ කුමක්ද, තත්වය පහත පරිදි නම්- පරිශීලකයින් සහ bday හැඹිලි වන අතර වාර්තාගත ප්‍රමාණය 1000-2000 අතර පරාසයක පවතී. මතකයේ දී මෙය කිරීමට මෙය වඩා වේගවත් නොවේ ද? සැකසුම් මඟින් මතකයේ 1000 + භාවිතා කරන්නන්ගේ ලැයිස්තුවක් හරහා නැවත ගැලපීම සිදු වන අතර තරගය සිදුවන්නේ කොතැනදැයි සොයා ගනී. මෙය db හි සිදු කිරීමට වඩා වේගවත්
නොවේද

1
46 user4677228 නමුත් පරිමාණය කිරීමට උත්සාහ කරන්න :-p. ඔබගේ කේතය මඟින් සියලු වයස් ගණනය කිරීම සඳහා සියලු දත්ත පරිලෝකනය කළ යුතු අතර ඔබ අපේක්ෂිත ප්‍රති result ලය “අවම වශයෙන් 20 ක් හෝ 30 ට වඩා අඩු පරිශීලකයින් කීදෙනෙක්ද?”, හැඹිලි ඔබට කිසිසේත් උදව් නොකරනු ඇත. ඔබ තවමත් මුළු වගුවම ඔබේ සේවාදායකයා වෙත ප්‍රවාහනය කිරීම අවසන් කරනු ඇත, නමුත් දත්ත සමුදා සේවාදායකයාට එහි මතක / හැඹිලි සියල්ලම කළ හැකි අතර db සේවාදායකයා දේශීය සොකට් හරහා හෝ දුරස්ථව ජාලය හරහා සම්බන්ධ වන්නේද යන්න නොසලකා ඔබට වේගවත් පිළිතුරක් ලබා දිය හැකිය. ඔබ WHEREවගන්තියකින් වයස ගණනය කිරීමට කැමති .
බින්කි

22

කෙටියෙන් කිවහොත් , ඔබේ දත්ත ගබඩාවේ වඩා හොඳින් ආමන්ත්‍රණය කර ඇති බැවින් "ඔබේ කේත පදනමේ කිසි විටෙකත් දත්ත සමුදා විශේෂිත මෙහෙයුම් සිදු නොකරන්න" යනුවෙන් පැවසීම නිවැරදි ය .

සෙට් බේස් මෙහෙයුම් පිළිබඳ උදාහරණය දෙස බලන්න . ඔබ දන්නා පරිදි, පොදු දත්ත ගබඩා කිරීම සහ හැසිරවීමේ මෙහෙයුම් හැසිරවීම සඳහා RDBMS ගොඩනගා ඇත.

ඊට අමතරව, දත්ත සමුදායේ ව්‍යාපෘති තේරීම වැදගත් කාර්යභාරයක් ඉටු කරයි. RDBMS (MS SQL, Oracle, ආදිය) තිබීම RavenDB වැනි NoSQL දත්ත සමුදායන්ට වඩා වෙනස් වේ.


ඔබගේ කේතය පදනම මාලාවක් මෙහෙයුම් දමා කවදාවත් මෙයින් අදහස් වනු ඇත්තේ පරම එකතු කිරීමට සියල්ල LINQ සිදු (තෝරා, මුදලක්, කොහේද, තනි) SQL දී සිදු කළ යුතු සහ නො ඔබගේ යෙදුම තුළ, මේ ඔබගේ දත්ත සමුදාය ව්යාපාර තර්කනය ගොඩක් තබා ඇත.
ජිමී හොෆා

4
ඔබ විස්තර කරන දේවල් සේවාදායක කේතයක් නොවේ. එය ව්‍යාපාර ස්ථරයක් වන අතර එහිදී ඔබට ඔබේම හැසිරවීමේ තර්කනයක් තිබිය හැකිය. කෙසේ වෙතත් 1M + වාර්තා වල මෙම තර්කනය සිදු කිරීමෙන් ඔබට නැවත පහර දෙනු ඇත.
යූසුබොව්

Im ජිමීහෝෆා: එය සත්‍යයක් නොවේ, සමහර විට ඔබ යෙදුම් මතකයේ දැනටමත් ඇති දත්ත සමඟ සැකසීමට අවශ්‍ය අස්ථිර තොරතුරු ජනනය කරයි. ලින්ක් ඒ ගැන පුදුම ක්‍රියා කරයි.
ෆැබ්රිෂියෝ අරාජෝ

Ab ෆැබ්රිසියෝ අරාජෝ ලින්ක් ශ්‍රේෂ් is වන්නේ මන්දැයි මම දනිමි, නමුත් මෙම පිළිතුරෙන් කියවෙන්නේ යෙදුම් කේතයේ කිසි විටෙකත් පදනම් වූ මෙහෙයුම් සිදු නොකරන්න , ඔබ කිසි විටෙකත් යෙදුම් කේතයේ මෙහෙයුම් සකස් නොකළේ නම් ඔබ කිසි විටෙකත් ලින්ක් භාවිතා නොකරනු ඇති බැවින් එය ලින්ක්හි සම්පූර්ණ අරමුණයි. යෙදුම් කේතයේ කිසි විටෙකත් සැකසුම් ක්‍රියා නොකිරීම නරක රීතියක් බව මම පෙන්වා දෙමි
ජිමී හොෆා

Im ජිමීහෝෆා: නැත, රීතිය පවසන්නේ "RDBMS ඔබට යහපතක් කළ හැකි දේ කිසි විටෙකත් යෙදුමේ නොකරන්න" යන්නයි. මම කතා කරන්නේ අස්ථිර තොරතුරු ගැන - දත්ත සමුදායේ නොනැසී පවතින තොරතුරු නොවේ. ව්‍යාපාර නීති රීති සම්පුර්ණ කිරීම සඳහා කේත මත සැකසුම් කිරීමට අවශ්‍ය පද්ධතිවල මම වැඩ කළෙමි. මට මතකයි ව්‍යාපාර රීතියක්, ඩීබී හි අධික සැකසුම් කිරීමෙන් පසුව, (ඉතා වැදගත්) වාර්තාවක් ජනනය කිරීම සඳහා එම දත්ත පිළිබඳ අතිරේක සැකසුම් කිරීම. මට ඒ සඳහා ලින්ක් භාවිතා කළ හැකි (එය දැන් අක්‍රියව ඇති ඩෙල්ෆි.නෙට් මත සිදු කරන ලදි). වෙනත් වචන වලින් කිවහොත්, එම රීතිය අනුගමනය කිරීමෙන් පවා ලින්ක් භාවිතා කළ හැකිය.
ෆැබ්රිෂියෝ අරාජෝ

13

රීතියක් ලෙස, ඔබේ යෙදුමට වඩා වැඩ කිරීමට ඔබේ ඩීබීට වැඩි තොරතුරු ඇති අතර පොදු දත්ත මෙහෙයුම් වඩාත් කාර්යක්ෂමව කළ හැකිය. ඔබේ දත්ත සමුදාය දර්ශක නඩත්තු කරයි, උදාහරණයක් ලෙස, ඔබේ යෙදුමට පියාසර කරන සෙවුම් ප්‍රති results ල සුචිගත කළ යුතුය. එබැවින් අනෙක් සියල්ලම සමාන වන බැවින්, යෙදුමට වඩා වැඩ දත්ත ගබඩාවට තල්ලු කිරීමෙන් ඔබේ සමස්ත වැඩ ප්‍රමාණය අඩු කළ හැකිය.

නමුත් ඔබේ නිෂ්පාදන පරිමාණයන් ලෙස, සාමාන්‍යයෙන් ඔබේ ඩීබී පරිමාණයට වඩා ඔබේ යෙදුම පරිමාණය කිරීම පහසු වේ. විශාල ස්ථාපනයන්හිදී, යෙදුම් සේවාදායකයන් 10 සිට 1 හෝ ඊට වැඩි සාධකයකින් දත්ත සමුදා සේවාදායකයන් අභිබවා යාම සාමාන්‍ය දෙයක් නොවේ. තවත් යෙදුම් සේවාදායකයන් එකතු කිරීම බොහෝ විට පවතින සේවාදායකයක් නව දෘඩාංග වලට ක්ලෝන කිරීමේ සරල කාරණයකි. අනෙක් අතට, නව දත්ත සමුදා සේවාදායකයන් එකතු කිරීම බොහෝ අවස්ථාවන්හි දී නාටකාකාර ලෙස වඩා දුෂ්කර ය.

එබැවින් මෙම අවස්ථාවෙහිදී, මන්ත්‍රය දත්ත සමුදාය ආරක්ෂා කරයි . දත්ත සමුදායේ memcachedප්‍රති results ල හැඹිලිගත කිරීමෙන් හෝ යෙදුම් පාර්ශවීය ලොගයක යාවත්කාලීනයන් පෝලිම් කිරීමෙන් හෝ දත්ත එක් වරක් ලබා ගැනීමෙන් සහ ඔබේ යෙදුමේ සංඛ්‍යාලේඛන ගණනය කිරීමෙන් ඔබට ඔබේ දත්ත සමුදායේ වැඩ ප්‍රමාණය නාටකාකාර ලෙස අඩු කර ගත හැකිය. ඊටත් වඩා සංකීර්ණ හා බිඳෙන සුළු ඩීබී පොකුරු වින්‍යාසය.


1
මුදල් වලට දෘඩාංග පරිමාණය කිරීමේ ගැටළු විසඳිය හැකි අතර කිසිදු මුදල් ප්‍රමාණයකට මෘදුකාංග සංකීර්ණතාව විසඳිය නොහැක.
ටියුලින්ස් කාර්ඩෝවා

3
15 user1598390 ඇත්ත වශයෙන්ම: දෘඩාංග මිළ අඩුයි , ක්‍රමලේඛකයින් මිල අධිකයි . මුදල් වලට මෘදුකාංග සංකීර්ණතාව විසඳිය හැකිය . ක්‍රමලේඛකයින් සඳහා වියදම් කළ මුදල්. නමුත් අපි කතා කරන්නේ පිරිසිදු කේත හා ස්පීගෙටි ගැන නොවේ. අපි කතා කරන්නේ ඩීබී පැත්තට එදිරිව යෙදුම් පැත්තේ වැඩ කිරීම ගැන ය. මෘදුකාංග සංකීර්ණතාව සුළු වශයෙන් සම්බන්ධ වන්නේ, විකල්ප දෙකටම හොඳ නිර්මාණ මූලධර්ම අනුගමනය කළ හැකි බැවිනි. වඩා හොඳ ප්‍රශ්නයක් නම්: " කුමන සැලසුමට වඩා වැඩි මුදලක් වැය වේද? ".
ටයිලර්

ඔබට කේත පදනමක් ඇති විට එය අති විශාල හා මේදය පිරී ඇති අතර, බොහෝ විට එය ව්‍යාපාර නොවන දේවල් කිරීම, ඔබට කළ හැකි එකම දෙය දෘඩාංග වලට වඩා වැඩි පිරිවැයක් සහ අධික අවිනිශ්චිතතාවයකින් යුතු සියලුම ප්‍රතිනිර්මාණ ශිල්පීන්ගේ මව පමණි. හොඳ දෘඩාංග සොයා ගත හැකි ස්ථානය ඔබ සැමවිටම දැන ගනු ඇත, නමුත් හොඳ ක්‍රමලේඛකයින් වෙනස් කතාවකි ... මේ අතර ඔබේ තරඟකරුවන් ඔවුන්ගේ කාලය වැඩි දියුණු කිරීමට, වෙනස් කිරීමට අනුවර්තනය වීමට සහ සේවාදායකයින් සතුටු කිරීමට භාවිතා කරයි.
ටියුලින්ස් කෝර්ඩෝවා

1
ඔබේ පිළිතුරේ පරිමාණය සඳහන් කළ එකම පුද්ගලයා වීම සඳහා +1.
මැට්

දෘඩාංග මිළ අඩුයි, තවදුරටත් නොවේ - දත්ත සමුදායේ, විදුලිය හා දෘඩාංග ධාවන පිරිවැයෙන් 88% ක් (මයික්‍රොසොෆ්ට් විසින් උපුටා දක්වා ඇත) එබැවින් කාර්යක්ෂම කේත ලිවීම සඳහා ක්‍රමලේඛකයින් සඳහා වැඩි මුදලක් වැය කිරීම ඉතා ලාභදායී වන අතර අප අසීමිත වන තෙක් සහ ලාභ විලයන බලය.
gbjbaanb

12

දත්ත සමුදාය එය අදහස් කරන දේ සඳහා භාවිතා නොකිරීම දුර්වල සැලසුමක් යැයි මම සිතමි. හොඳ දත්ත ඇති දත්ත සමුදායෙන් පිටත නීති ක්‍රියාත්මක කළ කිසිදු දත්ත ගබඩාවක් මා දැක නැත. මම සිය ගණනක් දත්ත සමුදායන් දෙස බැලුවෙමි.

එබැවින් දත්ත සමුදායක් තුළ කළ යුතු දේ:

  • විගණනය (යෙදුම පමණක් විගණනය මඟින් දත්ත සමුදායේ සියලුම වෙනස්කම් නිරීක්ෂණය නොකෙරෙන අතර එය නිෂ් .ල ය).

  • සියලු දත්ත වලට සැමවිටම යෙදිය යුතු පෙරනිමි අගයන්, විදේශීය යතුරු අවහිරතා සහ රීති ඇතුළුව දත්ත ඇතුළත් කිරීමේ සීමාවන්. යෙදුමක් හරහා සෑම දත්තයක්ම සෑම විටම වෙනස් කිරීම හෝ ඇතුළත් කිරීම සිදු නොකෙරේ, වරකට එක් වාර්තාවක් කිරීම ප්‍රායෝගික නොවන විශාල දත්ත කට්ටලවල එක් වරක් දත්ත නිවැරදි කිරීම් ඇත (කරුණාකර මෙම වාර්තා 100,000 තත්වය 1 ලෙස වැරදි ලෙස සලකුණු කර යාවත්කාලීන කළ යුතුය. යෙදුම් කේත දෝෂයක් හේතුවෙන් 2 ක් වන්න හෝ කරුණාකර B සමාගම A සමාගම මිලදී ගත් නිසා සේවාදායක A සිට සේවාදායක B දක්වා සියලු වාර්තා යාවත්කාලීන කරන්න) සහ දත්ත ආනයනය සහ එකම දත්ත සමුදායට ස්පර්ශ විය හැකි වෙනත් යෙදුම්.

  • බැඳීම් සහ වගන්ති පෙරීම (ජාලය හරහා යවන ලද වාර්තා ගණන අඩු කිරීම සඳහා)


5

"පරිගණක ක්‍රමලේඛනයේ සියලු නපුරේ (බොහෝ දුරට, කෙසේ වෙතත්) නොමේරූ ප්‍රශස්තකරණය" - ඩොනල්ඩ් නුත්

දත්ත සමුදාය හරියටම එයයි; ඔබගේ යෙදුමේ දත්ත ස්ථරය. එහි කාර්යය වන්නේ ඔබගේ ඉල්ලුම් පත්‍රය ඉල්ලූ දත්ත ලබා දීම සහ එයට ලබා දී ඇති දත්ත ගබඩා කිරීමයි. ඔබේ යෙදුම දත්ත සමඟ සැබවින්ම ක්‍රියා කරන කේත තැබීමේ ස්ථානයයි; එය ප්‍රදර්ශනය කිරීම, වලංගු කිරීම යනාදිය.

මාතෘකාව සමගාමීව මනෝගතීන් ප්රශංසනීය හා ලක්ෂ්යයක් නිවැරදි (, ෙපරහන් ප්රක්ෂේපනය, ජිනිවා හි ආදිය nitty-භාවිතයෙන් වන අතර යුතු නඩු අති සංඛ්යාවේ ඩී.බී. ගැනීමට ඉතිරි කළ), "හොඳින්" පිළිබඳ අර්ථ නිරූපනයක් ලබා දී විය හැකි නියෝග. SQL සේවාදායකයට ඉහළ කාර්ය සාධනයක් සහිතව ක්‍රියාත්මක කළ හැකි කාර්යයන් බොහෝය, නමුත් ඔබට නිරූපණය කළ හැකි කාර්යයන්SQL සේවාදායකය හුදකලා, නැවත නැවත කළ හැකි ආකාරයකින් නිවැරදිව කරන බව ඉතා අල්පය. SQL කළමනාකරණ ස්ටුඩියෝ යනු විශිෂ්ට දත්ත සමුදා IDE එකකි (විශේෂයෙන් මම TOAD වැනි වැඩ කර ඇති වෙනත් විකල්පයන් ලබා දී ඇත), නමුත් එයට එහි සීමාවන් ඇත, පළමුව ඒවා අතර ඔබ එය කිරීමට භාවිතා කරන ඕනෑම දෙයක් (හෝ ඔබ ක්‍රියාත්මක කරන ඕනෑම ක්‍රියා පටිපාටි කේතයක්) ඩීබී යටින්) අර්ථ දැක්වීම අනුව “අතුරු ආබාධයක්” (ඔබේ ක්‍රියාවලියේ මතක අවකාශයේ වසමෙන් පිටත පවතින තත්වය වෙනස් කිරීම). මීට අමතරව, SQL සේවාදායකය තුළ ඇති ක්‍රියා පටිපාටි කේතය දැන් ඇත්තේ, නවතම IDE සහ මෙවලම් සමඟ, කළමනාකරණ කේතයට ආවරණ ප්‍රමිතික සහ මාර්ග විශ්ලේෂණයන් භාවිතා කළ හැකි ආකාරය මැනිය හැකි ය (එබැවින් X පරීක්ෂණ මගින් ප්‍රකාශය හමු වුවහොත් මෙම විශේෂිත බව ඔබට නිරූපණය කළ හැකිය. , Y, සහ Z, සහ X පරීක්ෂණය සැලසුම් කර ඇත්තේ තත්වය සත්‍ය බවට පත් කර එම භාගය ක්‍රියාත්මක කරන අතර Y සහ Z “වෙනත්” ක්‍රියාත්මක කරන විට ය. . එමඟින්, ඔබට කිසියම් ආරම්භක තත්වයක් සමඟ දත්ත සමුදාය සැකසීමට, දත්ත සමුදා ක්‍රියා පටිපාටිය කේතය යම් ක්‍රියාවකින් ක්‍රියාත්මක කිරීමට සහ අපේක්ෂිත ප්‍රති .ල තහවුරු කිරීමට හැකි පරීක්ෂණයක් ඇතැයි උපකල්පනය කරයි.

බොහෝ දත්ත ප්‍රවේශ ස්ථර මගින් සපයන විසඳුමට වඩා මේ සියල්ල දුෂ්කර හා සම්බන්ධ වේ; දත්ත ස්තරය උපකල්පනය කරන්න (සහ, ඒ සඳහා, ඩීඒඑල්) නිවැරදි ආදානය ලබා දුන් විට ඔවුන්ගේ කාර්යය කරන්නේ කෙසේදැයි දන්නා අතර ඔබේ කේතය නිවැරදි ආදානය සපයනවාදැයි පරීක්ෂා කරන්න. පොලිස් අධිකාරීවරුන් වැනි ක්‍රියා පටිපාටි කේතය ඩී.බී. වෙතින් ඉවතට ගෙන ඒ වෙනුවට යෙදුම් කේතයේ එවැනි දේ කිරීමෙන් යෙදුම් කේතය ව්‍යායාම කිරීම පහසු බව පැවසීය.


ඉන්න, ඉන්න, මොකක්ද? දෝෂ පවතින බව සනාථ කළ හැකි නමුත් කේතය නිවැරදි බව කිසි විටෙකත් ඔප්පු කළ නොහැකි නිවැරදි කිරීම් සාක්‍ෂි වල සිට පරීක්ෂණ දක්වා ඔබ ලබාගත්තේ කෙසේද?
මේසන් වීලර්

2
ගබඩා කළ ක්‍රියා පටිපාටියක් කාර්ය පටිපාටික කේතයක් නොවේ. එස්පී යනු පෙර ගණනය කළ SQL විමසුමකි. එය යෙදුම් කේතය නොවේ.
gbjbaanb

1
එස්පී SQL විමසුමකට සීමා වී ඇත්නම් ඔබ හරි. කොන්දේසි සහිත බිඳීම්, ලූප, කර්සර සහ / හෝ වෙනත් විමසුම් නොවන තර්කනය ඇතුළුව එය T-SQL හෝ PL / SQL නම්, ඔබ වැරදිය. සයිබර් අවකාශය පුරා ඩීබී වල එස්පී, කාර්යයන් සහ ප්‍රේරක විශාල ප්‍රමාණයක් මෙම අමතර අංග ඇත.
කීත්ස්

5

කේතයේ ගුණාත්මකභාවය කෙරෙහි වන බලපෑම් නොසලකා, SQL සේවාදායකයේ ඔබගේ සියලු සැකසුම් කිරීම හොඳ නොවන බව මිනිසුන් නොදැන සිටින එක් දෙයක්.

උදාහරණයක් ලෙස, ඔබට යම් දත්තයක් අල්ලා දත්ත වලින් යමක් ගණනය කර දත්ත සමුදායේ ගබඩා කිරීමට අවශ්‍ය නම්. තේරීම් දෙකක් තිබේ:

  • ඔබගේ යෙදුමට දත්ත ලබා ගන්න, ඔබේ යෙදුම තුළ ගණනය කරන්න, ඉන්පසු දත්ත නැවත දත්ත ගබඩාවට යවන්න
  • දත්ත ග්‍රහණය කර ගැනීමට, ඒ හරහා ගණනය කිරීමට හා ඒ හා සමාන ඇමතුමක සිට SQL සේවාදායකයට ගබඩා කිරීමට ක්‍රියා පටිපාටියක් සකසන්න.

දෙවන විසඳුම සෑම විටම වේගවත්ම යැයි ඔබ සිතනු ඇත, නමුත් මෙය නියත වශයෙන්ම සත්‍ය නොවේ. SQL ගැටලුවට සුදුසු සුදුසුකමක් වුවද මම නොසලකා හරිමි (එනම් රීජෙක්ස් සහ නූල් හැසිරවීම). ඔබට SQL CLR හෝ දත්ත සමුදායේ පවා ප්‍රබල භාෂාවක් ඇති බව පෙන්වීමට ඉඩ දෙන්න. රවුම් ගමනක් යාමට තත්පර 1 ක් ගත වුවහොත් දත්ත ලබාගෙන එය ගබඩා කිරීමට තත්පර 1 ක් ගත වුවහොත් තත්පර 10 ක් ඒ හරහා ගණනය කිරීම සිදු කරයි. ඔබ ඒ සියල්ල දත්ත සමුදායේ කරන්නේ නම් ඔබ එය වැරදිය.

ෂුවර්, ඔබ තත්පර 2 ක් රැවුල කපන්න. කෙසේ වෙතත්, ඔබ ඔබේ දත්ත සමුදා සේවාදායකයේ තත්පර 10 ක් සඳහා 100% ක් (අවම වශයෙන්) එක් CPU හරයක් නාස්ති කළාද, නැතිනම් ඔබේ වෙබ් සේවාදායකයේ එම කාලය නාස්ති කළාද?

වෙබ් සේවාදායකයන් පරිමාණයට පහසුය, අනෙක් අතට දත්ත සමුදායන් අතිශයින්ම මිල අධිකය, විශේෂයෙන් SQL දත්ත සමුදායන්. බොහෝ විට, වෙබ් සේවාදායකයන් "අස්ථායි" වන අතර ඒවා පැටවුම් ශේෂකය හැර වෙනත් කිසිවක් සඳහා අමතර වින්‍යාසයකින් තොරව එකතු කර ඉවත් කළ හැකිය.

එබැවින්, ශල්‍යකර්මයකින් තත්පර 2 ක් රැවුල කැපීම ගැන පමණක් නොව, පරිමාණය ගැනද සිතන්න. සාපේක්ෂව කුඩා කාර්ය සාධන බලපෑමක් ඇති ඔබට වඩා ලාභදායී වෙබ් සේවාදායක සම්පත් භාවිතා කළ හැකි විට දත්ත සමුදා සේවාදායක සම්පත් වැනි මිල අධික සම්පතක් නාස්ති කරන්නේ ඇයි?


1
ඔබට ජාල චාරිකා ද අමතක වේ - කිසියම් කාර්යක්ෂමතාවයකින් තොරව සේවාදායකයන් එකතු කිරීමෙන් ඔබට තිරස් අතට පරිමාණය කළ නොහැක. එබැවින් වගන්තියක් පැහැදිලිව පෙනෙන තැනක් එකතු කිරීමෙන් දත්ත භාරය අඩු කිරීම - නමුත් අනෙක් වර්ග මෙහෙයුම් වලදී කාර්ය සාධනය අඩු නොවේ. ඔබේ කරුණ පොදුවේ නිවැරදියි, නමුත් ඔබ ඩීබී ගොළු දත්ත ගබඩාවක් ලෙස සලකන ස්ථානයට නොවේ. සෑම දත්ත ඇමතුමක් සඳහාම (සංකීර්ණ විමසුම් 2 ක් හැර) භාවිතා කළ ගබඩා කළ ක්‍රියා පටිපාටි මත මම මෙතෙක් වැඩ කර ඇති වඩාත්ම පරිමාණ කළ හැකි යෙදුම. 3 වන විසඳුම හොඳම - “අවශ්‍ය දත්ත ලබා ගැනීම සඳහා ගබඩා කර ඇති ප්‍රොක්”, ඔබ එය 'ගණනය කිරීම' ලෙස අදහස් කළේද නැද්ද යන්න ගැන විශ්වාස නැත.
gbjbaanb

4

SQL එය ගනුදෙනු කළ යුත්තේ දත්ත සමඟ පමණක් බැවින් මම එය දෙස බැලීමට කැමතියි. විමසුම කෙබඳු විය හැකිද යන්න තීරණය කරන ව්‍යාපාරික නීති කේතයෙන් සිදුවිය හැකිය. ඉන්ෆොමයිටෝනයේ රීජෙක්ස් හෝ වලංගු කිරීම කේතයෙන් කළ යුතුය. ඔබේ වගුවට සම්බන්ධ වීමට, ඔබේ දත්ත විමසීමට, පිරිසිදු දත්ත ඇතුළු කිරීමට SQL ඉතිරි විය යුතුය.

SQL වෙත සම්ප්‍රේෂණය වන දේ පිරිසිදු දත්ත විය යුතු අතර SQL එය ගබඩා කිරීමට, යාවත්කාලීන කිරීමට, මකා දැමීමට හෝ යමක් ලබා ගැනීමට අවශ්‍ය දේට වඩා වැඩි යමක් දැන ගැනීමට අවශ්‍ය නොවිය යුතුය. බොහෝ සංවර්ධකයින්ට ඔවුන්ගේ ව්‍යාපාර තර්කනය සහ කේතීකරණය SQL වෙත විසි කිරීමට අවශ්‍ය බව මම දැක ඇත්තෙමි. ඔබගේ දත්ත වලින් ඔබේ තර්කනය විසුරුවා හරින්න, එවිට ඔබේ කේතය පිරිසිදුව හා කළමනාකරණය කිරීමට පහසු වේ.

මගේ ඩොලර් 0.02 ක් වුවද.


දැනටමත් දත්ත සමුදායේ ඇති දත්ත මත ඔබ රීජෙක්ස් හෝ වලංගු භාවයක් ක්‍රියාත්මක කරන්නේ ඇයි? අවහිරතා මඟින් නරක දත්ත එතැනට නොපැමිණිය යුතු අතර, රීජෙක්ස් භාවිතා කිරීමෙන් බොහෝ විට ඔබට වඩාත් ප්‍රයෝජනවත් තීරු අවශ්‍ය වේ ..
බ්‍රෙන්ඩන් ලෝන්ග්

දත්ත ගබඩාවෙන් එන දත්ත සඳහා රීජෙක්ස් හෝ වලංගුකරණය භාවිතා කරන බව මම නොකියමි. දත්ත සමුදායට යන දත්ත සඳහා එය පැහැදිලි කර ගත යුතුව ඇතැයි මම සිතමි. මගේ අදහස වූයේ දත්ත ඩීඑල් වෙත ලැබීමට පෙර දත්ත පිරිසිදු කර වලංගු කළ යුතු බවයි.
ස්ටැන්ලි ග්ලාස් ජේ.

3

කේතය ව්‍යාපාරික තර්කනය පාලනය කළ යුතු බවත් ඩීබී තාර්කික නිදහස් හැෂ් එකක් විය යුතු බවත් සාමාන්‍යයෙන් මම එකඟ වෙමි. නමුත් මෙහි ප්‍රතිවිරුද්ධ කරුණු කිහිපයක් තිබේ:

ප්‍රාථමික, විදේශීය යතුර සහ අවශ්‍ය (ශුන්‍ය නොවේ) සීමාවන් කේතය මඟින් බලාත්මක කළ හැකිය. අවහිරතා යනු ව්‍යාපාරික තර්කනයයි. කළ හැකි කේත මොනවාදැයි අනුපිටපත් කරන බැවින් ඒවා දත්ත ගබඩාවෙන් ඉවත් කළ යුතුද?

ඔබගේ පාලනයෙන් බැහැර වෙනත් පාර්ශවයන් දත්ත සමුදාය ස්පර්ශ කරනවාද? එසේ නම් දත්ත වලට ආසන්නව සීමාවන් පැනවීම සතුටක්. ප්‍රවේශය තර්කානුකූලව ක්‍රියාත්මක කරන වෙබ් සේවාවකට පමණක් සීමා කළ හැකි නමුත් මෙය උපකල්පනය කරන්නේ ඔබ “පළමුව” සිටි බවත් අනෙක් පාර්ශවයන් මත සේවාව භාවිතා කිරීමට බලාත්මක කිරීමේ බලය ඇති බවත්ය.

ඔබේ ORM එක් එක් වස්තුව සඳහා වෙනම ඇතුළත් කිරීමක් / යාවත්කාලීන කිරීමක් සිදු කරයිද? ඔව් නම්, විශාල දත්ත කට්ටල සැකසීමේදී ඔබට දැඩි ක්‍රියාකාරීත්ව ගැටළු ඇති වේ. සෙට් මෙහෙයුම් යනු යා යුතු මාර්ගයයි. ඔබට මෙහෙයුම් සිදු කළ හැකි සියලුම සම්බන්ධිත කට්ටල නිවැරදිව ආකෘතිකරණය කිරීමට ORM හි ගැටලුවක් ඇත.

“ස්ථරයක්” සේවාදායකයන් විසින් භෞතික බෙදීමක් ලෙස හෝ තාර්කික භේදයක් ලෙස ඔබ සලකනවාද? ඕනෑම සේවාදායකයක තර්කනය ක්‍රියාත්මක කිරීම න්‍යායාත්මකව තවමත් එහි තාර්කික ස්ථරයට යටත් විය හැකිය. සේවාදායකයන් පමණක් බෙදීමට වඩා විවිධ ඩීඑල්එල් වලට සම්පාදනය කිරීමෙන් ඔබට භේදය සංවිධානය කළ හැකිය. උත්සුකයන් වෙන් කිරීම පවත්වා ගෙන යන අතරම ප්‍රතිචාර කාලය නාටකාකාර ලෙස වැඩි කළ හැකිය (නමුත් තෙරපුම කැප කිරීම). බෙදීම් ඩීඑල්එල් පසුකාලීනව ප්‍රතිදානය වැඩි කිරීම සඳහා නව ගොඩනැගීමකින් තොරව වෙනත් සේවාදායකයන් වෙත ගෙන යා හැකිය (ප්‍රතිචාර කාලය අනුව).


ඇයි පහත වැටීම?
mike30

5
මම අවතක්සේරු කර නැත, නමුත් ඕනෑම දත්ත සමුදා ශාස්ත්‍ර ist යෙක් ඔබට කියනු ඇත්තේ දත්ත සමුදාය සලකා බැලීම තර්කානුකූල නොවන හැෂ් එකක් ඉතා දුර්වල අදහසක් බවයි. එය දත්තවල අඛණ්ඩතාව පිළිබඳ ගැටළු හෝ කාර්ය සාධන ගැටළු හෝ දෙකම ඇති කරයි.
HLGEM

1
@HLGEM. පිළිතුර තර්ක තබා ගැනීමට හේතු විස්තර දී ඇති ඩී.බී. සේවාදායකය මත දත්ත සමුදායේ හෝ රැස්වීම. තවමත් එය පැහැදිලි නොකරයි.
mike30

මා කළ ආකාරයට ඔවුන් ප්‍රතිවිරුද්ධ ස්ථාන වෙත නොපැමිණෙන්නට ඇත.
HLGEM

3

ව්‍යාපාරික නීති රීති පිළිපැදීම, දත්ත සමඟ සම්බන්ධතා (දත්ත හා ව්‍යුහය සහ සම්බන්ධතා) සමඟ සම්බන්ධ කිරීම මෝඩකමකි. එය සෑම ගැටලුවකටම එක ම නැවතුම් සාප්පුවක් නොව එය අතින් වැනි දේ වළක්වා ගැනීමට උපකාරී වේ. දත්ත සමුදා මට්ටමින් මේවා ලබා ගත හැකි නම් නඩත්තු කරන ලද වාර්තා කවුන්ටර, අතින් නඩත්තු කරන ලද සම්බන්ධතා අඛණ්ඩතාව යනාදිය. එබැවින් වෙනත් අයෙකු පැමිණ වැඩසටහන් දීර් extend කරන්නේ නම් හෝ දත්ත සමුදාය සමඟ අන්තර්ක්‍රියා කරන වෙනත් වැඩසටහනක් ලියන්නේ නම්, පෙර කේතයෙන් දත්ත සමුදායේ අඛණ්ඩතාව පවත්වා ගන්නේ කෙසේදැයි ඔවුන්ට සොයා ගැනීමට සිදු නොවේ. එකම දත්ත සමුදායක් සමඟ අන්තර් ක්‍රියා කිරීම සඳහා වෙනත් අයෙකුට නව වැඩසටහනක් ලිවීමට අවශ්‍ය වූ විට අතින් නඩත්තු කරන ලද වාර්තා කවුන්ටරයක නඩුව විශේෂයෙන් අදාළ වේ. අලුතින් සාදන ලද වැඩසටහනට හරියටම කවුන්ටරය සඳහා නිවැරදි කේතය තිබුණත්, මුල් වැඩසටහන සහ නව වැඩසටහන දළ වශයෙන් එකම වේලාවක ධාවනය වන විට එය දූෂිත වීමට ඉඩ ඇත. නව හෝ යාවත්කාලීන කරන ලද වාර්තාවක් ලිවීමට පෙර (කේතයෙන් හෝ වෙනම විමසුම් ලෙස) වාර්තා ලබාගෙන කොන්දේසි පරීක්ෂා කරන කේතයක් පවා තිබේ, හැකි නම් මෙය බොහෝ විට ඇතුළත් කිරීමේ හෝ යාවත්කාලීන කිරීමේ ප්‍රකාශයේදීම සාක්ෂාත් කරගත හැකිය. දත්ත දූෂණය නැවත සිදුවිය හැකිය. දත්ත සමුදා එන්ජිම පරමාණුක බව සහතික කරයි; කොන්දේසි සහිත යාවත්කාලීනයක් හෝ ඇතුළත් කිරීමේ විමසුමක් කොන්දේසි සපුරාලන වාර්තා වලට පමණක් බලපාන බවට සහතික වන අතර බාහිර විමසුමකට අපගේ යාවත්කාලීනය හරහා දත්ත අඩක් වෙනස් කළ නොහැක. දත්ත සමුදා එන්ජිම වඩා හොඳින් සේවය කරන විට කේතය භාවිතා කරන තවත් බොහෝ අවස්ථා තිබේ. ඒ සියල්ල දත්ත අඛණ්ඩතාව ගැන මිස කාර්ය සාධනය ගැන නොවේ. නව හෝ යාවත්කාලීන කරන ලද වාර්තාවක් ලිවීමට පෙර (කේතයෙන් හෝ වෙනම විමසුම් ලෙස) වාර්තා ලබාගෙන කොන්දේසි පරීක්ෂා කරන කේතයක් පවා තිබේ නම්, හැකි නම් මෙය බොහෝ විට ඇතුළත් කිරීමේ හෝ යාවත්කාලීන කිරීමේ ප්‍රකාශයේදීම සාක්ෂාත් කරගත හැකිය. දත්ත දූෂණය නැවත සිදුවිය හැකිය. දත්ත සමුදා එන්ජිම පරමාණුක බව සහතික කරයි; කොන්දේසි සහිත යාවත්කාලීනයක් හෝ ඇතුළත් කිරීමේ විමසුමක් කොන්දේසි සපුරාලන වාර්තා වලට පමණක් බලපාන බවට සහතික වන අතර බාහිර විමසුමකට අපගේ යාවත්කාලීනය හරහා දත්ත අඩක් වෙනස් කළ නොහැක. දත්ත සමුදා එන්ජිම වඩා හොඳින් සේවය කරන විට කේතය භාවිතා කරන තවත් බොහෝ අවස්ථා තිබේ. ඒ සියල්ල දත්ත අඛණ්ඩතාව ගැන මිස කාර්ය සාධනය ගැන නොවේ. නව හෝ යාවත්කාලීන කරන ලද වාර්තාවක් ලිවීමට පෙර (කේතයෙන් හෝ වෙනම විමසුම් ලෙස) වාර්තා ලබාගෙන කොන්දේසි පරීක්ෂා කරන කේතයක් පවා තිබේ නම්, හැකි නම් මෙය බොහෝ විට ඇතුළත් කිරීමේ හෝ යාවත්කාලීන කිරීමේ ප්‍රකාශයේදීම සාක්ෂාත් කරගත හැකිය. දත්ත දූෂණය නැවත සිදුවිය හැකිය. දත්ත සමුදා එන්ජිම පරමාණුක බව සහතික කරයි; කොන්දේසි සහිත යාවත්කාලීනයක් හෝ ඇතුළත් කිරීමේ විමසුමක් කොන්දේසි සපුරාලන වාර්තා වලට පමණක් බලපාන බවට සහතික වන අතර බාහිර විමසුමකට අපගේ යාවත්කාලීනය හරහා දත්ත අඩක් වෙනස් කළ නොහැක. දත්ත සමුදා එන්ජිම වඩා හොඳින් සේවය කරන විට කේතය භාවිතා කරන තවත් බොහෝ අවස්ථා තිබේ. ඒ සියල්ල දත්ත අඛණ්ඩතාව ගැන මිස කාර්ය සාධනය ගැන නොවේ. දත්ත සමුදා එන්ජිම පරමාණුක බව සහතික කරයි; කොන්දේසි සහිත යාවත්කාලීනයක් හෝ ඇතුළත් කිරීමේ විමසුමක් කොන්දේසි සපුරාලන වාර්තා වලට පමණක් බලපාන බවට සහතික වන අතර බාහිර විමසුමකට අපගේ යාවත්කාලීනය හරහා දත්ත අඩක් වෙනස් කළ නොහැක. දත්ත සමුදා එන්ජිම වඩා හොඳින් සේවය කරන විට කේතය භාවිතා කරන තවත් බොහෝ අවස්ථා තිබේ. ඒ සියල්ල දත්ත අඛණ්ඩතාව ගැන මිස කාර්ය සාධනය ගැන නොවේ. දත්ත සමුදා එන්ජිම පරමාණුක බව සහතික කරයි; කොන්දේසි සහිත යාවත්කාලීනයක් හෝ ඇතුළත් කිරීමේ විමසුමක් කොන්දේසි සපුරාලන වාර්තා වලට පමණක් බලපාන බවට සහතික වන අතර බාහිර විමසුමකට අපගේ යාවත්කාලීනය හරහා දත්ත අඩක් වෙනස් කළ නොහැක. දත්ත සමුදා එන්ජිම වඩා හොඳින් සේවය කරන විට කේතය භාවිතා කරන තවත් බොහෝ අවස්ථා තිබේ. ඒ සියල්ල දත්ත අඛණ්ඩතාව ගැන මිස කාර්ය සාධනය ගැන නොවේ.

එබැවින් එය සැබවින්ම හොඳ නිර්මාණ මෝඩකමක් හෝ නියමය. දූෂිත දත්ත සහිත පද්ධතියකට කිසිදු කාර්ය සාධනයක් උපකාරී නොවේ.


0

කලින් සඳහන් කළ පරිදි, ඉලක්කය වන්නේ දත්ත සමුදායට හැකි තරම් සුළු ප්‍රමාණයක් යැවීම සහ ලැබීමයි. මන්දයත් වට චාරිකා ඉතා මිල අධික වේලාවක් අනුව ය. SQL ප්‍ර stat ප්ති නැවත නැවතත් යැවීම විශේෂයෙන් වඩාත් සංකීර්ණ විමසුම් වලදී කාලය නාස්ති කිරීමකි.

දත්ත සමුදායේ ගබඩා කර ඇති ක්‍රියා පටිපාටි භාවිතා කිරීමෙන් සංවර්ධකයින්ට පිටුපස ඇති සංකීර්ණ ක්‍රමෝපායන් ගැන කරදර නොවී API වැනි දත්ත සමුදාය සමඟ අන්තර් ක්‍රියා කිරීමට ඉඩ ලබා දේ. නම සහ පරාමිතීන් කිහිපයක් පමණක් යවන බැවින් එය සේවාදායකයට යවන දත්ත අඩු කරයි. මෙම තත්වය තුළ, බොහෝ බුසින් තර්කනය තවමත් කේතයේ තිබිය හැකි නමුත් SQL ස්වරූපයෙන් නොවේ. කේතය අත්‍යවශ්‍යයෙන්ම දත්ත ගබඩාවෙන් යැවිය යුතු හෝ ඉල්ලා සිටින දේ සූදානම් කරයි.


0

මතක තබා ගත යුතු කරුණු කිහිපයක් තිබේ:

  • සබැඳි දත්ත ගබඩාවක් මඟින් විදේශීය යතුරු හරහා යොමු කිරීමේ අඛණ්ඩතාව සහතික කළ යුතුය
  • එක් දත්ත සමුදායක් පරිමාණය කිරීම දුෂ්කර හා මිල අධික විය හැකිය. තවත් වෙබ් සේවාදායකයන් එකතු කිරීමෙන් වෙබ් සේවාදායකයක් පරිමාණය කිරීම පහසුය. වැඩි SQL සේවාදායක බලයක් එක් කිරීමට උත්සාහ කරන්න.
  • C # සහ LINQ සමඟ, ඔබට ඔබේ "බැඳීම්" සහ කේත හරහා වොට්නොට් කළ හැකිය, එවිට ඔබට බොහෝ අවස්ථා වලදී ලෝකයේ දෙවර්ගයේම හොඳම දේ ලබා ගත හැකිය.

0

“නොමේරූ ප්‍රශස්තකරණය සියලු නපුරේ මුලයි” - ඩොනල්ඩ් නුත්

කාර්යය සඳහා වඩාත් සුදුසු මෙවලම භාවිතා කරන්න. දත්ත අඛණ්ඩතාව සඳහා, මෙය බොහෝ විට දත්ත සමුදාය වේ. උසස් ව්‍යාපාරික නීති සඳහා, මෙය JBoss Drools වැනි රීති පදනම් කරගත් පද්ධතියකි. දත්ත දෘශ්‍යකරණය සඳහා, මෙය වාර්තාකරණ රාමුවක් වනු ඇත. ආදිය.

ඔබට කිසියම් කාර්ය සාධන ගැටළු තිබේ නම්, පසුව ඕනෑම දත්තයක් හැඹිලිගත කළ හැකිද, නැතහොත් දත්ත සමුදාය ක්‍රියාත්මක කිරීම ඉක්මන් වේද යන්න සොයා බැලිය යුතුය. පොදුවේ ගත් කල, අමතර සේවාදායකයන් හෝ අමතර වලාකුළු බලයක් මිලදී ගැනීමේ පිරිවැය එකතු කළ නඩත්තු පිරිවැයට හා අමතර දෝෂවල බලපෑමට වඩා බෙහෙවින් අඩු වනු ඇත.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.