C#.NET-แƒจแƒ˜ LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

ะ’ แƒ”แƒก แƒ›แƒฃแƒฎแƒšแƒ˜ แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ‘แƒแƒ“แƒ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜.
แƒแƒฅ แƒแƒกแƒ”แƒ•แƒ” แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒ แƒ— LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜.

แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜แƒ, แƒ แƒแƒ› LINQ(Language-Integrated Query) แƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ”แƒœแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

ะ LINQ SQL-แƒ–แƒ” แƒแƒ แƒ˜แƒก DBMS-แƒจแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒซแƒšแƒแƒ•แƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ”แƒœแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒแƒ˜แƒฅแƒชแƒ”แƒ•แƒ SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ แƒ“แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, DBMS-แƒจแƒ˜ แƒ•แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒ— MS SQL แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜.

แƒ—แƒฃแƒ›แƒชแƒ, LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ”แƒ‘แƒแƒ“ SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒš DBA-แƒก แƒจแƒ”แƒ”แƒซแƒšแƒ แƒ“แƒแƒ”แƒฌแƒ”แƒ แƒ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜แƒ— SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜:

  1. แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜ (แƒจแƒ”แƒ›แƒแƒ’แƒ•แƒ˜แƒ”แƒ แƒ—แƒ“แƒ˜แƒ—) แƒ“แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ•แƒ แƒ (WHERE)
  2. แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒฏแƒ’แƒฃแƒคแƒฃแƒ แƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒจแƒ˜
  3. แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒ แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ IN on แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒกะธ แƒแƒ  แƒแƒ แƒ˜แƒก, <> แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก
  4. แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก, CTE, แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—
  5. แƒฌแƒ˜แƒœแƒแƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ (OPTION) แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ—แƒ แƒ“แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— WITH (...)
  6. แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒกแƒแƒก แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ’แƒแƒœ แƒ—แƒแƒ•แƒ˜แƒก แƒ“แƒแƒกแƒแƒฆแƒฌแƒ”แƒ•แƒแƒ“

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒ‘แƒ˜ SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒกแƒแƒก LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒแƒœ:

  1. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒจแƒ˜
  2. แƒ™แƒแƒ“แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ“แƒฃแƒ‘แƒšแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒช แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒแƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒก
  3. แƒ›แƒ แƒแƒ•แƒแƒšแƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜แƒแƒœแƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ˜ (แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ "แƒ“แƒ" แƒ“แƒ "แƒแƒœ") - แƒ“แƒ ะธ ORแƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒกแƒฃแƒ  แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ˜แƒ› แƒคแƒแƒฅแƒขแƒก, แƒ แƒแƒ› แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒแƒ แƒแƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒ แƒ— (แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ) แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—
  4. แƒฅแƒ•แƒ”แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒฆแƒ แƒ›แƒ แƒ‘แƒฃแƒ“แƒแƒ‘แƒ แƒžแƒแƒ แƒกแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒฃแƒ แƒ˜แƒ SQL แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ“แƒแƒœ แƒ“แƒ DBA

แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜

แƒแƒฎแƒšแƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ–แƒ”.

1) แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ

แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒคแƒ˜แƒšแƒขแƒ แƒ”แƒ‘แƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ  แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒซแƒแƒšแƒ˜แƒแƒœ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ”แƒ แƒ—แƒ˜ แƒแƒœ แƒแƒ แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒ แƒจแƒ”แƒ›แƒ (แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜-แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜-แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜) แƒ“แƒ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒ— (แƒ“แƒแƒฎแƒฃแƒ แƒฃแƒšแƒ˜แƒ, แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ, แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜). แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒšแƒ˜ แƒœแƒ˜แƒ›แƒฃแƒจแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ.

แƒ”แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒแƒ–แƒ แƒ˜ แƒแƒฅแƒ•แƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒ› แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒ–แƒฆแƒฃแƒ“แƒแƒ•แƒก แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ–แƒ”.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ’แƒ•แƒแƒฅแƒ•แƒก 500000 2000 แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜. แƒ—แƒฃแƒ›แƒชแƒ, แƒ›แƒฎแƒแƒšแƒแƒ“ XNUMX แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒ. แƒ›แƒแƒจแƒ˜แƒœ แƒกแƒฌแƒแƒ แƒแƒ“ แƒจแƒ”แƒ แƒฉแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒ“แƒแƒ’แƒ•แƒ˜แƒฎแƒกแƒœแƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ˜แƒ“ แƒ›แƒแƒ’แƒ˜แƒ“แƒแƒ–แƒ” แƒ“แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒแƒกแƒ”แƒ•แƒ”, แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒแƒœ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—. MS SQL แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜:

  1. sys.dm_db_missing_index_groups
  2. sys.dm_db_missing_index_group_stats
  3. sys.dm_db_missing_index_details

แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒฃแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ’แƒแƒ แƒ“แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒกแƒ.

แƒ—แƒฃแƒ›แƒชแƒ, แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒแƒ“ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒ LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ ะธ SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜.

แƒ แƒแƒ’แƒแƒ แƒช แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ™แƒแƒชแƒ แƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ‘แƒ˜แƒ–แƒœแƒ”แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ‘แƒ˜แƒ–แƒœแƒ”แƒกแƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ•แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ. แƒ“แƒ แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ›แƒซแƒ˜แƒ›แƒ” แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒคแƒแƒœแƒ–แƒ” แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ”แƒก แƒœแƒแƒฌแƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒ’แƒแƒ›แƒแƒ แƒ—แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒ แƒ”แƒแƒ’แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ“แƒแƒœแƒ”.

แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ’แƒแƒ“แƒแƒญแƒ แƒแƒก แƒ‘แƒ˜แƒ–แƒœแƒ”แƒกแƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ–แƒ˜แƒ—.

แƒแƒกแƒ”แƒ•แƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜, แƒฌแƒ˜แƒœแƒแƒ“แƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ MS SQL แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜:

  1. แƒ—แƒฃ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜ แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒ—
  2. แƒ—แƒฃ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ (แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒแƒฅ).

2) แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ แƒ”แƒ แƒ— แƒแƒฎแƒแƒš แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒแƒ“

แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ•แƒ”แƒšแƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒก, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒ”แƒ แƒ—แƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒขแƒแƒœแƒ˜แƒ—.

แƒ”แƒก แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ”แƒฎแƒ”แƒ‘แƒ แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒ•แƒ”แƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒขแƒ˜แƒก แƒแƒœ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

IsClosed = 0 แƒ“แƒ แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ = 0 แƒ“แƒ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ = 0 แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜ = 1.

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜, แƒ แƒแƒ—แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก, แƒ แƒแƒ› แƒ”แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ”แƒก แƒแƒฎแƒแƒšแƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ.

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒคแƒฃแƒœแƒ“แƒแƒ›แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฌแƒ•แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

3) แƒฎแƒ”แƒ“แƒ˜แƒก แƒ›แƒแƒขแƒ”แƒ แƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒจแƒ˜ LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜, CTE-แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก.

แƒ—แƒฃแƒ›แƒชแƒ, แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก - แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜.

แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ˜ (แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ“แƒแƒœ) IsClosed = 0 แƒ“แƒ แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ = 0 แƒ“แƒ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ = 0 (แƒแƒœ แƒกแƒฎแƒ•แƒ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜) แƒฎแƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒ แƒ’แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒ›แƒแƒ—แƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ“แƒ˜แƒ“แƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒ›แƒแƒขแƒ”แƒ แƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒแƒก:

  1. แƒฅแƒ•แƒ”แƒ›แƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜แƒก, แƒžแƒฃแƒœแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ›แƒแƒ’แƒ•แƒ˜แƒ”แƒ แƒ—แƒ“แƒ˜แƒ—
  2. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒฌแƒ˜แƒœแƒแƒ“แƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ UNION, แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ, แƒ’แƒแƒ›แƒแƒœแƒแƒ™แƒšแƒ˜แƒกแƒ˜, แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜
  3. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒžแƒฃแƒœแƒฅแƒขแƒ”แƒ‘แƒ˜ OPTION
  4. แƒชแƒ˜แƒ™แƒšแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก
  5. แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒฎแƒ”แƒ“แƒจแƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ

แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒฎแƒ”แƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ”แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ˜แƒงแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— WITH (NOEXPAND).

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒแƒกแƒ” แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒกแƒฎแƒ•แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ - แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒก โ€žแƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒโ€œ:

CREATE VIEW ะ˜ะœะฏ_ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธั AS SELECT * FROM MAT_VIEW WITH (NOEXPAND);

4) แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒฅแƒ•แƒ”แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜ แƒแƒœ แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜ แƒ แƒ—แƒฃแƒšแƒ˜ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒฅแƒ›แƒœแƒ˜แƒแƒœ แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ“แƒ แƒแƒ แƒแƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ—.

แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜ LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜:

  1. แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ˜แƒงแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ— แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜:
    FROM FUNCTION (@param1, @param2 ...)
    แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ
  2. แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜:
    1. แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜:
      แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— LINQ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒœแƒ” แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒแƒก.
      แƒ›แƒแƒ’แƒ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒแƒฅแƒ•แƒก แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜.
      แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ— แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒแƒ— แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ• แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒแƒก, แƒกแƒแƒ“แƒแƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜แƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ”แƒ‘แƒ˜.
    2. แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ—, แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ—แƒแƒœ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒ˜แƒ˜แƒฆแƒแƒ—:
      • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒ แƒ—แƒฃแƒšแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ (แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—)
      • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ
      • แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก UNION ะธ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก

  3. แƒจแƒ”แƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒ OPTION แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ™แƒฃแƒ แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ OPTION (MAXDOP N), แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ. แฒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“:
    • แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒ˜แƒก แƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒจแƒ”แƒฅแƒ›แƒœแƒ OPTION (แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ)
    • แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ—, แƒแƒ˜แƒซแƒฃแƒšแƒแƒ— แƒ—แƒฃ แƒแƒ แƒ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ OPTION (แƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ)

    แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ”แƒขแƒแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ OPTION แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒแƒฅ.

  4. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ•แƒ˜แƒฌแƒ แƒ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒญแƒ˜แƒ แƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:
    แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒฅแƒ”แƒจแƒ”แƒ‘แƒจแƒ˜ (แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜), แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ•แƒ แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—.
    แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜ WHERE แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒ›แƒ˜ แƒ•แƒ”แƒšแƒ˜ (แƒ, แƒ‘, แƒ’).

    แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒแƒฅแƒ•แƒก แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ a = 0 แƒ“แƒ b = 0.

    แƒ—แƒฃแƒ›แƒชแƒ แƒ—แƒฎแƒแƒ•แƒœแƒ แƒ›แƒแƒ”แƒ“แƒแƒœแƒ–แƒ” c แƒฃแƒคแƒ แƒ แƒชแƒ•แƒแƒšแƒ”แƒ‘แƒแƒ“แƒ˜.

    แƒ“แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒžแƒ˜แƒ แƒแƒ‘แƒ a = 0 แƒ“แƒ b = 0 แƒ”แƒก แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ’แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒ•แƒ–แƒฆแƒฃแƒ“แƒแƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒแƒ ั แƒแƒ•แƒ˜แƒฌแƒ แƒแƒ”แƒ‘แƒก แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒแƒก แƒแƒกแƒแƒ›แƒ“แƒ” แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒแƒ›แƒ“แƒ”.

    แƒแƒฅ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜.

    แƒแƒกแƒ”แƒ•แƒ”, แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒฃแƒคแƒ แƒ แƒžแƒ แƒแƒ’แƒœแƒแƒ–แƒ˜แƒ แƒ”แƒ‘แƒแƒ“แƒ˜ แƒ“แƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒ˜แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒแƒ แƒ˜แƒก แƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒ“แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ”แƒ แƒ— แƒฎแƒ”แƒ“แƒก (OperativeQuestions), แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒแƒฌแƒ›แƒ“แƒ”แƒ‘แƒ แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒคแƒแƒกแƒขแƒ˜แƒ— (แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก) โ€žแƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒš แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ–แƒ”โ€œ:

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ No1

(@p__linq__0 nvarchar(4000))SELECT
1 AS [C1],
[Extent1].[Id] AS [Id],
[Join2].[Object_Id] AS [Object_Id],
[Join2].[ObjectType_Id] AS [ObjectType_Id],
[Join2].[Name] AS [Name],
[Join2].[ExternalId] AS [ExternalId]
FROM [dbo].[Questions] AS [Extent1]
INNER JOIN (SELECT [Extent2].[Object_Id] AS [Object_Id],
[Extent2].[Question_Id] AS [Question_Id], [Extent3].[ExternalId] AS [ExternalId],
[Extent3].[ObjectType_Id] AS [ObjectType_Id], [Extent4].[Name] AS [Name]
FROM [dbo].[ObjectQuestions] AS [Extent2]
INNER JOIN [dbo].[Objects] AS [Extent3] ON [Extent2].[Object_Id] = [Extent3].[Id]
LEFT OUTER JOIN [dbo].[ObjectTypes] AS [Extent4] 
ON [Extent3].[ObjectType_Id] = [Extent4].[Id] ) AS [Join2] 
ON [Extent1].[Id] = [Join2].[Question_Id]
WHERE ([Extent1].[AnswerId] IS NULL) AND (0 = [Extent1].[Exp]) AND ( EXISTS (SELECT
1 AS [C1]
FROM [dbo].[OperativeQuestions] AS [Extent5]
WHERE (([Extent5].[Email] = @p__linq__0) OR (([Extent5].[Email] IS NULL) 
AND (@p__linq__0 IS NULL))) AND ([Extent5].[Id] = [Extent1].[Id])
));

แƒฎแƒ”แƒ“แƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ: แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒฅแƒ•แƒ”แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒแƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ”แƒ‘แƒแƒก แƒ’แƒแƒœแƒ›แƒแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ แƒแƒช แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ” แƒ˜แƒœแƒขแƒ”แƒœแƒกแƒ˜แƒฃแƒ แƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒ.

OperativeQuestions-แƒ˜แƒก แƒœแƒ˜แƒ›แƒฃแƒจแƒ˜ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒแƒ—แƒ˜ แƒแƒ—แƒแƒกแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒ.

แƒแƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ’แƒแƒ แƒ” แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒจแƒ˜แƒ“แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ [OperativeQuestions] แƒฎแƒ”แƒ“แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช [Email] = @p__linq__0 แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒ•แƒชแƒ”แƒ›แƒก แƒจแƒ”แƒ•แƒ–แƒฆแƒฃแƒ“แƒแƒ— แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก) แƒแƒกแƒแƒ›แƒ“แƒ” แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜.

แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒœแƒ“แƒ”แƒก, แƒ แƒแƒ› แƒฅแƒ•แƒ”แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ› แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒแƒšแƒแƒก แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ”แƒ แƒ—แƒฎแƒ”แƒš [Email] = @p__linq__0-แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ”แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒกแƒ”แƒฃแƒšแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ Id-แƒ˜แƒ— Questions-แƒ˜แƒ— แƒ“แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜.

แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒ˜ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜: Id Questions-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ Id-แƒ—แƒแƒœ OperativeQuestions-แƒ“แƒแƒœ แƒ“แƒ แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ•แƒ แƒ แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒคแƒแƒกแƒขแƒ˜แƒ—.

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒ—แƒ˜แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— OperativeQuestions แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ—แƒแƒœ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ”แƒš.แƒคแƒแƒกแƒขแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

OperativeQuestions แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ:

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ No2

 
CREATE VIEW [dbo].[OperativeQuestions]
AS
SELECT DISTINCT Q.Id, USR.email AS Email
FROM            [dbo].Questions AS Q INNER JOIN
                         [dbo].ProcessUserAccesses AS BPU ON BPU.ProcessId = CQ.Process_Id 
OUTER APPLY
                     (SELECT   1 AS HasNoObjects
                      WHERE   NOT EXISTS
                                    (SELECT   1
                                     FROM     [dbo].ObjectUserAccesses AS BOU
                                     WHERE   BOU.ProcessUserAccessId = BPU.[Id] AND BOU.[To] IS NULL)
) AS BO INNER JOIN
                         [dbo].Users AS USR ON USR.Id = BPU.UserId
WHERE        CQ.[Exp] = 0 AND CQ.AnswerId IS NULL AND BPU.[To] IS NULL 
AND (BO.HasNoObjects = 1 OR
              EXISTS (SELECT   1
                           FROM   [dbo].ObjectUserAccesses AS BOU INNER JOIN
                                      [dbo].ObjectQuestions AS QBO 
                                                  ON QBO.[Object_Id] =BOU.ObjectId
                               WHERE  BOU.ProcessUserAccessId = BPU.Id 
                               AND BOU.[To] IS NULL AND QBO.Question_Id = CQ.Id));

แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒ แƒฃแƒ™แƒ DbContext-แƒจแƒ˜ (EF Core 2)

public class QuestionsDbContext : DbContext
{
    //...
    public DbQuery<OperativeQuestion> OperativeQuestions { get; set; }
    //...
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Query<OperativeQuestion>().ToView("OperativeQuestions");
    }
}

แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ LINQ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ

var businessObjectsData = await context
    .OperativeQuestions
    .Where(x => x.Email == Email)
    .Include(x => x.Question)
    .Select(x => x.Question)
    .SelectMany(x => x.ObjectQuestions,
                (x, bo) => new
                {
                    Id = x.Id,
                    ObjectId = bo.Object.Id,
                    ObjectTypeId = bo.Object.ObjectType.Id,
                    ObjectTypeName = bo.Object.ObjectType.Name,
                    ObjectExternalId = bo.Object.ExternalId
                })
    .ToListAsync();

แƒแƒ› แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒแƒก แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒชแƒแƒšแƒ™แƒ” แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ›แƒ–แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒ— (โ€žแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜โ€œ), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒก. .

แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ”แƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ, แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก.

แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ [Email] = @p__linq__0-แƒ˜แƒ— OperativeQuestions แƒฎแƒ”แƒ“แƒ˜แƒ“แƒแƒœ.

แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ [dbo].[OperativeQuestionsUserMail] แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜.

แƒ”แƒš.แƒคแƒแƒกแƒขแƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒก:

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ No3


CREATE FUNCTION [dbo].[OperativeQuestionsUserMail]
(
    @Email  nvarchar(4000)
)
RETURNS
@tbl TABLE
(
    [Id]           uniqueidentifier,
    [Email]      nvarchar(4000)
)
AS
BEGIN
        INSERT INTO @tbl ([Id], [Email])
        SELECT Id, @Email
        FROM [OperativeQuestions]  AS [x] WHERE [x].[Email] = @Email;
     
    RETURN;
END

แƒ”แƒก แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ—.

แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ OperativeQuestionsUserMail แƒ˜แƒงแƒแƒก แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ’แƒ”แƒ’แƒ›แƒ”แƒ‘แƒ˜, แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒ™แƒแƒชแƒ แƒ˜ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ“แƒ แƒแƒ แƒ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ›แƒแƒ’แƒ˜แƒ“แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก...

แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ 1 แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ 4-แƒแƒ“:

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ No4

(@p__linq__0 nvarchar(4000))SELECT
1 AS [C1],
[Extent1].[Id] AS [Id],
[Join2].[Object_Id] AS [Object_Id],
[Join2].[ObjectType_Id] AS [ObjectType_Id],
[Join2].[Name] AS [Name],
[Join2].[ExternalId] AS [ExternalId]
FROM (
    SELECT Id, Email FROM [dbo].[OperativeQuestionsUserMail] (@p__linq__0)
) AS [Extent0]
INNER JOIN [dbo].[Questions] AS [Extent1] ON([Extent0].Id=[Extent1].Id)
INNER JOIN (SELECT [Extent2].[Object_Id] AS [Object_Id], [Extent2].[Question_Id] AS [Question_Id], [Extent3].[ExternalId] AS [ExternalId], [Extent3].[ObjectType_Id] AS [ObjectType_Id], [Extent4].[Name] AS [Name]
FROM [dbo].[ObjectQuestions] AS [Extent2]
INNER JOIN [dbo].[Objects] AS [Extent3] ON [Extent2].[Object_Id] = [Extent3].[Id]
LEFT OUTER JOIN [dbo].[ObjectTypes] AS [Extent4] 
ON [Extent3].[ObjectType_Id] = [Extent4].[Id] ) AS [Join2] 
ON [Extent1].[Id] = [Join2].[Question_Id]
WHERE ([Extent1].[AnswerId] IS NULL) AND (0 = [Extent1].[Exp]);

แƒœแƒแƒฎแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ แƒฃแƒ™แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ DbContext-แƒจแƒ˜ (EF Core 2)

public class QuestionsDbContext : DbContext
{
    //...
    public DbQuery<OperativeQuestion> OperativeQuestions { get; set; }
    //...
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Query<OperativeQuestion>().ToView("OperativeQuestions");
    }
}
 
public static class FromSqlQueries
{
    public static IQueryable<OperativeQuestion> GetByUserEmail(this DbQuery<OperativeQuestion> source, string Email)
        => source.FromSql($"SELECT Id, Email FROM [dbo].[OperativeQuestionsUserMail] ({Email})");
}

แƒกแƒแƒ‘แƒแƒšแƒแƒ LINQ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ

var businessObjectsData = await context
    .OperativeQuestions
    .GetByUserEmail(Email)
    .Include(x => x.Question)
    .Select(x => x.Question)
    .SelectMany(x => x.ObjectQuestions,
                (x, bo) => new
                {
                    Id = x.Id,
                    ObjectId = bo.Object.Id,
                    ObjectTypeId = bo.Object.ObjectType.Id,
                    ObjectTypeName = bo.Object.ObjectType.Name,
                    ObjectExternalId = bo.Object.ExternalId
                })
    .ToListAsync();

แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ แƒ“แƒแƒ”แƒชแƒ 200-800 ms-แƒ“แƒแƒœ 2-20 ms-แƒ›แƒ“แƒ” แƒ“แƒ แƒ.แƒจ., แƒแƒœแƒฃ แƒแƒ—แƒฏแƒ”แƒ  แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“.

แƒ—แƒฃ แƒฃแƒคแƒ แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—, แƒ›แƒแƒจแƒ˜แƒœ 350 ms-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— 8 ms.

แƒแƒจแƒ™แƒแƒ แƒ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—:

  1. แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ,
  2. แƒ‘แƒšแƒแƒ™แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒšแƒ‘แƒแƒ—แƒแƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ
  3. แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ“แƒ แƒแƒ˜แƒก แƒ“แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ

แƒ’แƒแƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒก

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ แƒ“แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ‘แƒ MS SQL แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— LINQ แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ.

แƒแƒ› แƒกแƒแƒฅแƒ›แƒ”แƒจแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ“แƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ‘แƒ.

แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜:

  1. แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ—แƒแƒœแƒแƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ (แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒ แƒฉแƒ”แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜)
  2. แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ—แƒแƒœแƒแƒ“แƒ แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ
  3. แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒฌแƒแƒ แƒ”

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ แƒชแƒฎแƒแƒ“แƒงแƒแƒคแƒก:

  1. แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒคแƒ˜แƒšแƒขแƒ แƒก
  2. แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜
  3. SSMS-แƒจแƒ˜ แƒแƒœ แƒกแƒฎแƒ•แƒ GUI-แƒจแƒ˜ แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก SQL Server แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒ—แƒแƒ•แƒก SQL แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ (แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒแƒ› แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ”))
  4. แƒ‘แƒแƒšแƒ แƒ”แƒขแƒแƒžแƒ–แƒ”, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒแƒ“ SQL แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก LINQ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ LINQ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜ แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒšแƒ˜ แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜แƒก SQL แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒ›แƒ”-3 แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜แƒ“แƒแƒœ.

แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ

แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒ™แƒแƒšแƒ”แƒ’แƒ”แƒ‘แƒก jobgemws ะธ alex_ozr แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ˜แƒกแƒ’แƒแƒœ แƒคแƒแƒ แƒขแƒ˜ แƒแƒ› แƒ›แƒแƒกแƒแƒšแƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒแƒจแƒ˜ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ