C# strings ስቕ ኢሎም ኣብ Dapper ንዘለዉ SQL Server ኢንዴክሳትካ ይቐትልዎም | Mewayz Blog Skip to main content
Hacker News

C# strings ስቕ ኢሎም ኣብ Dapper ንዘለዉ SQL Server ኢንዴክሳትካ ይቐትልዎም

ርእይቶታት

2 min read Via consultwithgriff.com

Mewayz Team

Editorial Team

Hacker News

C# Strings ስቕ ኢሎም ንኣፈጻጽማ ዳታቤዝካ ይሓንቕዎ ኣለዉ

ንዳታ ምብጻሕካ ዳፐር እትጥቀም .NET ዲቨሎፐር እንተኾንካ፡ ንኣፈጻጽማን ቅልልነትን ብሉጽ ምርጫ ጌርካ ኣለኻ። ዳፐር ንዓበይቲ ፍሬምዎርክታት ልዕሊ ዓቐንን ዝተሓላለኸን ንብረት ብምውጋድ ናብቲ ብረት ቅርበት ዝገብረካ ፍሉይ ማይክሮ-ኦኣርም እዩ። እዚ ሓይሊ እዚ ግን ምስ ሓላፍነት እዩ ዝመጽእ። ኣብ C# ኣፕሊኬሽናት ዝሰፍሐ ንጹህ ዝመስል ናይ ኮዲንግ ልምዲ፡ ንኣፈጻጽማ SQL Server ናትካ ምብታኽ ክኸውን ይኽእል እዩ: ንሕቶታት SQL inline string literals ምጥቃም። እዚ ተግባር እዚ ስቕ ኢሉ ንኣድማዕነት ናይቶም ብጥንቃቐ ዝተወጠኑ ዳታቤዝ ኢንዴክሳትካ ይቐትል፣ እዚ ድማ ናብ ድኹም ሕቶታትን ድኹም ተመኩሮ ተጠቃሚን ይመርሕ። ንኸም በዓል መዋይዝ ዝኣመሰሉ መድረኻት፡ ስሉጥ ኣተሓሕዛ ዳታ ንምምሕዳር ስርሓት ንግዲ ወሳኒ ዝኾነሉ፡ እዚ ዓቕምኻ ዘይትኽእል ቀታሊ ኣፈጻጽማ እዩ።

እቲ ኢንዴክስ ማጂክን እቲ ፓራሜትር ዝኾነ መድሓኒን

መጀመርታ ስለምንታይ ኢንዴክስ ኣዝዩ ኣገዳሲ ምዃኑ ንርዳእ። ዳታቤዝ ኢንዴክስ ከምቲ ኣብ መጽሓፍ ዘሎ ኢንዴክስ እዩ፤ SQL Server ንነፍሲ ​​ወከፍ ገጽ (ወይ መስርዕ) ከይስካን ዳታ ክረክብ የኽእሎ። ንሕቶ ብ `WHERE` ዝብል ዓንቀጽ ከተካይዶ ከለኻ፡ እቲ ናይ ሕቶ መመሓየሺ ዝጥቀመሉ ዝበለጸ ኢንዴክስ ይደሊ። ናይዚ ስሕበት መፍትሕ ምግማት ምኽኣል እዩ። መለክዒ ዘለዎ ሕቶ ክትጥቀም ከለኻ፡ ነቲ መመሓየሺ ዝሰርሕ ንጹርን ቅኑዕን ቅዲ ትህቦ።

እቲ ፍልልይ እንሆ። ነዞም ክልተ ኣብነታት ዳፐር ንርአ፡

<ብሎክኮት> ዝብል ጽሑፍ ኣሎ። // እዚ BAD እዩ - ምትእስሳር ሕብረ ቃላት
var ተጠቃሚ መለለዪ = "12345";
var sql = $"SELECT * FROM ተጠቀምቲ WHERE መለለዪ ተጠቃሚ = {መታወቅያ ተጠቃሚ}";
var ተጠቃሚ = ምትእስሳር.ሕቶ<ተጠቃሚ>(sql); ዝብል ጽሑፍ ኣሎ።

ኣንጻር

<ብሎክኮት> ዝብል ጽሑፍ ኣሎ። // እዚ ጽቡቕ እዩ - ፓራሜትር ዘለዎ ሕቶ
var sql = "SELECT * FROM ተጠቀምቲ WHERE መለለዪ ተጠቃሚ = @መታወቅያ ተጠቃሚ";
var ተጠቃሚ = ምትእስሳር.ሕቶ<ተጠቃሚ>(sql, ሓድሽ { UserId = 12345 }); ዝብል ጽሑፍ ኣሎ።

እቲ ቀዳማይ ኣብነት ንነፍሲ ወከፍ ዝተፈላለየ `userId` ፍሉይ ናይ SQL ሕብረ ቃላት ይፈጥር። ብዓይኒ SQL Server ኣብ ነፍሲ ወከፍ ግዜ ፍጹም ሓድሽ ሕቶ ይርኢ ኣሎ፡ ሓደ ን`UserId = 12345`፡ ካልእ ን`UserId = 67890`፡ ወዘተ። እቲ ካልኣይ ኣብነት ኣብ ነፍሲ ወከፍ ግዜ ተመሳሳሊ ናይ ሕቶ ሕብረ-ቁጽሪ ይልእኽ፣ ነቲ ናይ መለክዒ ዋጋ ጥራይ ይቕይሮ። እዚ ቅኑዕነት እዚ መሰረት ስሉጥ ኣፈጻጽማ ሕቶ እዩ።

ብኸመይ ስትሪንግ ሊተርልስ ንውጥን ሕቶ ምዕቃብ ይዕንቅፍ

ሕመረት ናይቲ ጸገም ኣብ Query Plan Cache እዩ ዝርከብ። SQL Server ንናይ SQL ሕብረ-ቁጽሪኻ ናብ ናይ ምፍጻም ውጥን የጠቓልሎ- ከመይ ጌርካ ነቲ ዳታ ከም እትረኽቦ ዝሕብር ንድፊ። እዚ ምትእኽኻብ ክቡር ስለዝኾነ፡ ኤስኪዩኤል ሰርቨር ነዞም ውጥናት ዳግማይ ንኽጥቀመሎም ይዕቅቦም። ምስ መለክዒ ዘለዎም ሕቶታት፡ እቲ ውጥን ን `SELECT * FROM Users WHERE UserId = @UserId` ሓንሳብ ይእከብ፡ ይዕቀብ፡ ንነፍሲ ​​ወከፍ ስዒቡ ዝመጽእ ጻውዒት ድማ ዳግማይ ይጥቀመሉ፡ ጭቡጥ ዋጋ መለለዪ ብዘየገድስ። እዚ ዝተዓቀበ ውጥን ነቲ ኣብ ዓምዲ `UserId` ዘሎ ኢንዴክስ ብብቕዓት ንምጥቃም ዝተዳለወ እዩ።

ናይ ውሽጢ መስመር ሕብረ ቃላት ቃል ብቓላት ክትጥቀም ከለኻ፡ ነፍሲ ወከፍ ፍሉይ ዋጋ ፍሉይ ናይ SQL ሕብረ ቃላት ይፈጥር። SQL Server ንነፍሲ ​​ወከፎም ከም ሓደ ፍጹም ሓድሽ ሕቶ ይሕዞም፣ ንዑደታት ሲፒዩ ኣብ ምጥርናፍ ከባኽንን ኣብ ነፍሲ ወከፍ ግዜ ሓድሽ ውጥን ምፍጻም ክፈጥርን የገድዶ። እዚ ድማ ነቲ ናይ ትልሚ መኽዘን ቀልጢፉ ብዳርጋ ተመሳሳሊ፣ ንሓደ ግዜ ጥራይ ዝጥቀሙ ውጥናት የዕለቕልቖ፣ ካልኦት ጠቐምቲ ውጥናት ይባረርን ዝኽሪ የባኽን። ብዝያዳ ወሳኒ ዝኾነ ድማ፡ እቲ ምምሕያሽ ዝገብር መብዛሕትኡ ግዜ ነዞም ናይ ሓደ ግዜ ሕቶታት ዝምችእ መዐቀኒ ብዘተኣማምን መንገዲ ክጥቀመሉ ኣይክእልን እዩ፡ ሓደ ሓደ ግዜ ድማ ኣብ ክንዲ ምድላይ ሰንጠረዥ ስካን ይኸውን። ልዑል ኣፈጻጽማ ዘለዎ መዐቀኒኻ ዘይጠቅም ጌጽ ይኸውን።

ሸለል ክትብሎ ዘይትኽእል ጽልዋ ኣፈጻጽማ

ሳዕቤን ናይዚ ጸረ-ቅርጺ ምስ ግዜ ከቢድን ዝገደደን እዩ።

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
    ዝብል ጽሑፍ ኣሎ።
  • ልዑል ኣጠቓቕማ ሲፒዩ: ቀጻሊ ምጥርናፍ ሕቶ ንሲፒዩ ናይ ዳታቤዝ ሰርቨርካ ይውስኽ።
  • ዝሕታለ ናይ ሕቶ መልሲ ግዜ፦ ሕቶታት ካብቲ መኽዘን ስለ ዝስእኑን ምሉእ ናይ ሰደቓ ስካን ክገብሩ ስለ ዝኽእሉን ዝያዳ ግዜ ይወስዱ።
  • Plan Cache Bloat: እቲ ካሸ ብሓደ ግዜ ዝጥቀሙ ውጥናት ተዓጽዩ ስለዘሎ፡ ንኣፈጻጽማ ኩሎም ኣብቲ ሰርቨር ዘለዉ ሕቶታት ይጎድእ እዩ።
  • ሓደጋታት ድሕነት፦ እዚ ኣገባብ እዚ ንመጥቃዕቲ መርፍእ ኤስኪዩኤል ማዕጾ ይኸፍት፣ እዚ ድማ ፓራሜትር ዘለዎም ሕቶታት ብባህሪኦም ዝከላኸልዎ ወሳኒ ተቓላዕነት እዩ።
ዝብል ጽሑፍ ኣሎ።

ንከም Mewayz ዝኣመሰለ ንኹባንያታት ዝተሓላለኸ ሞዱላር ዳታ ዝሕዝ ናይ ንግዲ ስርዓተ ምምሕዳር፡ እዞም ጉዳያት እዚኦም ንመልሲ ናይቲ ኣፕሊኬሽን ከስንክልዎ ይኽእሉ፡ ብቐጥታ ንኣፍራይነትን ዕግበትን ተጠቀምቲ ክጸልዉ ይኽእሉ።

ምእራም እቲ ጸገም፡ መለክዒታት ሓቚፍካ ኮድካ ምግምጋም

እቲ መፍትሒ ቀሊልን ምስቲ ድሮ ክትክተሎም ዝግበኣካ ብሉጻት ልምድታት ዝሰማማዕን እዩ። ኩሉ ግዜ ምስ ዳፐር መለክዒ ዘለዎም ሕቶታት ተጠቐም። ዳፐር ነዚ ንምእማኑ ዘጸግም ቀሊል ይገብሮ፡ ንመዐቀኒታት ከም ስሞም ዘይተገልጸ ነገራት ወይ ዳይናሚክ መለክዒታት ከተሕልፎም ብምፍቃድ። እዚ ንመተግበሪኻ ካብ መርፍእ ኤስኪዩኤል ውሑስ ጥራይ ዘይኮነስ ሕቶታትካ ንመኽዘን ዝምችኡን ንኢንዴክሳትካ ብግቡእ ክጥቀመሉ ከም ዝኽእልን የረጋግጽ።

ብተወሳኺ፡ ናይ SQL Server ፕላን ካሸ ብቐጻሊ ክትከታተል። ልዑል ቁጽሪ ናይ "ኣድሆክ" ሕቶታት ድለዩ፣ እዚኦም መብዛሕትኡ ግዜ ናይዚ ጸገም ዝሕብር ምልክት እዮም። ከም SQL Server Management Studio (SSMS) ዝኣመሰሉ መሳርሒታት ተጠቒምካ ኣፈጻጽማ ሕቶ ንምትንታንን ምድላይ ኣበይ ክኸውን ከም ዘለዎ ስካናት ንምልላይን። ፓራሜትራይዜሽንን ንጡፍ ምክትታልን ብምቕባል፡ ምሉእ ዓቕሚ ናይ ዳታቤዝ ንጣብካ ትኸፍት፡ ከም መዋይዝ ዝኣመሰሉ መድረኻት ዘመናውያን ትካላት ንግዲ ዝጠልብዎ ቅልጡፍን ዘተኣማምንን ኣፈጻጽማ ከቕርቡ ከም ዝኽእሉ የረጋግጽ።

ብተደጋጋሚ ዝሕተቱ ሕቶታት

C# Strings ስቕ ኢሎም ንኣፈጻጽማ ዳታቤዝካ ይሓንቕዎ ኣለዉ

ንዳታ ምብጻሕካ ዳፐር እትጥቀም .NET ዲቨሎፐር እንተኾንካ፡ ንኣፈጻጽማን ቅልልነትን ብሉጽ ምርጫ ጌርካ ኣለኻ። ዳፐር ንዓበይቲ ፍሬምዎርክታት ልዕሊ ዓቐንን ዝተሓላለኸን ንብረት ብምውጋድ ናብቲ ብረት ቅርበት ዝገብረካ ፍሉይ ማይክሮ-ኦኣርም እዩ። እዚ ሓይሊ እዚ ግን ምስ ሓላፍነት እዩ ዝመጽእ። ኣብ C# ኣፕሊኬሽናት ዝሰፍሐ ንጹህ ዝመስል ናይ ኮዲንግ ልምዲ፡ ንኣፈጻጽማ SQL Server ናትካ ምብታኽ ክኸውን ይኽእል እዩ: ንሕቶታት SQL inline string literals ምጥቃም። እዚ ተግባር እዚ ስቕ ኢሉ ንኣድማዕነት ናይቶም ብጥንቃቐ ዝተወጠኑ ዳታቤዝ ኢንዴክሳትካ ይቐትል፣ እዚ ድማ ናብ ድኹም ሕቶታትን ድኹም ተመኩሮ ተጠቃሚን ይመርሕ። ንኸም በዓል መዋይዝ ዝኣመሰሉ መድረኻት፡ ስሉጥ ኣተሓሕዛ ዳታ ንምምሕዳር ስርሓት ንግዲ ወሳኒ ዝኾነሉ፡ እዚ ዓቕምኻ ዘይትኽእል ቀታሊ ኣፈጻጽማ እዩ።

እቲ ኢንዴክስ ማጂክን እቲ ፓራሜትር ዝኾነ መድሓኒን

መጀመርታ ስለምንታይ ኢንዴክስ ኣዝዩ ኣገዳሲ ምዃኑ ንርዳእ። ዳታቤዝ ኢንዴክስ ከምቲ ኣብ መጽሓፍ ዘሎ ኢንዴክስ እዩ፤ SQL Server ንነፍሲ ​​ወከፍ ገጽ (ወይ መስርዕ) ከይስካን ዳታ ክረክብ የኽእሎ። ንሕቶ ብ `WHERE` ዝብል ዓንቀጽ ከተካይዶ ከለኻ፡ እቲ ናይ ሕቶ መመሓየሺ ዝጥቀመሉ ዝበለጸ ኢንዴክስ ይደሊ። ናይዚ ስሕበት መፍትሕ ምግማት ምኽኣል እዩ። መለክዒ ዘለዎ ሕቶ ክትጥቀም ከለኻ፡ ነቲ መመሓየሺ ዝሰርሕ ንጹርን ቅኑዕን ቅዲ ትህቦ።

ብኸመይ ስትሪንግ ሊተርልስ ንውጥን ሕቶ ምዕቃብ ይዕንቅፍ

ሕመረት ናይቲ ጸገም ኣብ Query Plan Cache እዩ ዝርከብ። SQL Server ንናይ SQL ሕብረ-ቁጽሪኻ ናብ ናይ ምፍጻም ውጥን የጠቓልሎ- ከመይ ጌርካ ነቲ ዳታ ከም እትረኽቦ ዝሕብር ንድፊ። እዚ ምትእኽኻብ ክቡር ስለዝኾነ፡ ኤስኪዩኤል ሰርቨር ነዞም ውጥናት ዳግማይ ንኽጥቀመሎም ይዕቅቦም። ምስ መለክዒ ዘለዎም ሕቶታት፡ እቲ ውጥን ን `SELECT * FROM Users WHERE UserId = @UserId` ሓንሳብ ይእከብ፡ ይዕቀብ፡ ንነፍሲ ​​ወከፍ ስዒቡ ዝመጽእ ጻውዒት ድማ ዳግማይ ይጥቀመሉ፡ ጭቡጥ ዋጋ መለለዪ ብዘየገድስ። እዚ ዝተዓቀበ ውጥን ነቲ ኣብ ዓምዲ `UserId` ዘሎ ኢንዴክስ ብብቕዓት ንምጥቃም ዝተዳለወ እዩ።

ሸለል ክትብሎ ዘይትኽእል ጽልዋ ኣፈጻጽማ

ሳዕቤን ናይዚ ጸረ-ቅርጺ ምስ ግዜ ከቢድን ዝገደደን እዩ።

ምእራም እቲ ጸገም፡ መለክዒታት ሓቚፍካ ኮድካ ምግምጋም

እቲ መፍትሒ ቀሊልን ምስቲ ድሮ ክትክተሎም ዝግበኣካ ብሉጻት ልምድታት ዝሰማማዕን እዩ። ኩሉ ግዜ ምስ ዳፐር መለክዒ ዘለዎም ሕቶታት ተጠቐም። ዳፐር ነዚ ንምእማኑ ዘጸግም ቀሊል ይገብሮ፡ ንመዐቀኒታት ከም ስሞም ዘይተገልጸ ነገራት ወይ ዳይናሚክ መለክዒታት ከተሕልፎም ብምፍቃድ። እዚ ንመተግበሪኻ ካብ መርፍእ ኤስኪዩኤል ውሑስ ጥራይ ዘይኮነስ ሕቶታትካ ንመኽዘን ዝምችኡን ንኢንዴክሳትካ ብግቡእ ክጥቀመሉ ከም ዝኽእልን የረጋግጽ።

ኩሎም ናይ ቢዝነስ መሳርሒታትካ ኣብ ሓደ ቦታ

ብዙሓት መተግበሪታት ምትላል ኣቋርጽ። መዋይዝ 208 መሳርሒታት ብ$49/ወርሒ ጥራይ የወሃህድ — ካብ ንብረት ክሳብ HR፡ ምዝገባ ክሳብ ትንታነ። ንምጅማር ዝኾነ ናይ ክረዲት ካርድ ኣየድልን።

መዋይዝ ነጻ ፈትኑ →
ዝብል ጽሑፍ ኣሎ።

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 6,209+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,209+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime