{"id":319,"date":"2026-08-20T14:27:57","date_gmt":"2026-08-20T10:57:57","guid":{"rendered":"https:\/\/tarahanenovin.ir\/blog\/?p=319"},"modified":"2026-08-20T14:28:48","modified_gmt":"2026-08-20T10:58:48","slug":"%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c","status":"publish","type":"post","link":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/","title":{"rendered":"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627"},"content":{"rendered":"<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u060c \u06a9\u0646\u062f\u06cc SQL Server \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0641\u0642\u0637 \u0628\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0648\u062f\u0646 Query \u0645\u0631\u0628\u0648\u0637 \u0646\u06cc\u0633\u062a. \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0646\u0627\u0645\u0646\u0627\u0633\u0628\u060c \u0642\u0641\u0644 \u0634\u062f\u0646 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u060c \u0627\u062c\u0631\u0627\u06cc \u0645\u06a9\u0631\u0631 Query\u060c \u0628\u0631\u0622\u0648\u0631\u062f \u0627\u0634\u062a\u0628\u0627\u0647 \u062a\u0639\u062f\u0627\u062f \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u0646\u0627\u062f\u0631\u0633\u062a \u062a\u0631\u0627\u06a9\u0646\u0634 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0632\u0645\u0627\u0646 \u067e\u0627\u0633\u062e \u0631\u0627 \u0627\u0632 \u0686\u0646\u062f \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647 \u0628\u0647 \u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0628\u0647 \u062c\u0627\u06cc \u062a\u0648\u0635\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u060c \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0639\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0648 \u0627\u0635\u0644\u0627\u062d Query\u0647\u0627\u06cc \u06a9\u0646\u062f \u062f\u0631 SQL Server \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u0642\u0628\u0644 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 Query\u060c \u0645\u0634\u06a9\u0644 \u0631\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u0648\u0644\u06cc\u0646 \u0627\u0634\u062a\u0628\u0627\u0647 \u062f\u0631 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc SQL Server \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u062f\u0648\u0646 \u0645\u0634\u0627\u0647\u062f\u0647 Execution Plan \u06cc\u0627 \u0622\u0645\u0627\u0631 \u0627\u062c\u0631\u0627\u06cc Query\u060c \u0634\u0631\u0648\u0639 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0648 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SET<\/span> STATISTICS IO <span class=\"hljs-keyword\">ON<\/span>;\r\n<span class=\"hljs-keyword\">SET<\/span> STATISTICS <span class=\"hljs-type\">TIME<\/span> <span class=\"hljs-keyword\">ON<\/span>;\r\n\r\n<span class=\"hljs-comment\">-- Query \u0645\u0648\u0631\u062f \u0646\u0638\u0631<\/span>\r\n<span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-operator\">*<\/span>\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1250<\/span>;\r\n\r\n<span class=\"hljs-keyword\">SET<\/span> STATISTICS IO OFF;\r\n<span class=\"hljs-keyword\">SET<\/span> STATISTICS <span class=\"hljs-type\">TIME<\/span> OFF;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0647\u0645\u06cc \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0634\u0645\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u062a\u0639\u062f\u0627\u062f Logical Read<\/li>\n<li>\u062a\u0639\u062f\u0627\u062f Physical Read<\/li>\n<li>\u0632\u0645\u0627\u0646 CPU<\/li>\n<li>\u0632\u0645\u0627\u0646 \u0633\u067e\u0631\u06cc \u0634\u062f\u0647<\/li>\n<li>\u062a\u0639\u062f\u0627\u062f Scan \u0648 Seek<\/li>\n<li>\u0645\u0642\u062f\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062d\u0627\u0641\u0638\u0647 \u06cc\u0627 \u062f\u06cc\u0633\u06a9<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u062a\u0641\u0627\u0648\u062a Logical Read \u0648 Physical Read<\/h3>\n<p dir=\"rtl\" lang=\"fa\"><code>Logical Read<\/code> \u062a\u0639\u062f\u0627\u062f \u0635\u0641\u062d\u0627\u062a \u06f8 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a\u06cc \u062e\u0648\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u0627\u0632 Buffer Pool \u0627\u0633\u062a. \u0645\u0642\u062f\u0627\u0631 \u0632\u06cc\u0627\u062f \u0622\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u0634\u0627\u0646\u0647 \u0627\u0633\u06a9\u0646 \u06af\u0633\u062a\u0631\u062f\u0647 \u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0646\u0627\u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.<\/p>\n<p dir=\"rtl\" lang=\"fa\"><code>Physical Read<\/code> \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f SQL Server \u0645\u062c\u0628\u0648\u0631 \u0634\u062f\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0627\u0632 \u062f\u06cc\u0633\u06a9 \u0628\u062e\u0648\u0627\u0646\u062f. \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u060c Physical Read \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0639\u062b \u0631\u0642\u0627\u0628\u062a \u0634\u062f\u06cc\u062f \u0631\u0648\u06cc \u062f\u06cc\u0633\u06a9 \u0634\u0648\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 SSMS\u060c \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 Execution Plan \u0648\u0627\u0642\u0639\u06cc \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\">Ctrl + M\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0633\u067e\u0633 Query \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u062f\u0631 Plan \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>Table Scan<\/li>\n<li>Index Scan<\/li>\n<li>Key Lookup<\/li>\n<li>Sort \u067e\u0631\u0647\u0632\u06cc\u0646\u0647<\/li>\n<li>Hash Match<\/li>\n<li>\u0647\u0634\u062f\u0627\u0631\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Implicit Conversion<\/li>\n<li>\u0627\u062e\u062a\u0644\u0627\u0641 \u0628\u06cc\u0646 Estimated Rows \u0648 Actual Rows<\/li>\n<\/ul>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0631\u0633\u0645\u06cc \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a\u060c \u067e\u0627\u06cc\u0634 \u0645\u062f\u0627\u0648\u0645 Query\u0647\u0627\u060c Execution Plan\u0647\u0627 \u0648 Runtime Statistics \u067e\u0627\u06cc\u0647 \u062a\u0635\u0645\u06cc\u0645 \u06af\u06cc\u0631\u06cc \u0635\u062d\u06cc\u062d \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a. <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/performance\/monitor-and-tune-for-performance?view=sql-server-ver16\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0648 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc SQL Server \u062f\u0631 Microsoft Learn<\/a><\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1. Query \u0631\u0627 \u0628\u0627 \u0641\u06cc\u0644\u062a\u0631 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">SQL Server \u0632\u0645\u0627\u0646\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0647 \u0634\u06a9\u0644 \u0645\u0624\u062b\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u06a9\u0647 \u0634\u0631\u0637 <code>WHERE<\/code> \u0631\u0648\u06cc \u062e\u0648\u062f \u0633\u062a\u0648\u0646 \u0642\u0627\u0628\u0644 \u062c\u0633\u062a\u062c\u0648 \u0628\u0627\u0634\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">Query \u0646\u0627\u0645\u0646\u0627\u0633\u0628<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> OrderId, TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> <span class=\"hljs-keyword\">YEAR<\/span>(OrderDate) <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">2026<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u062a\u0627\u0628\u0639 <code>YEAR<\/code> \u0631\u0648\u06cc \u0633\u062a\u0648\u0646 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0648 SQL Server \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u062c\u0628\u0648\u0631 \u0634\u0648\u062f \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">Query \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> OrderId, TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> OrderDate <span class=\"hljs-operator\">&gt;=<\/span> <span class=\"hljs-string\">'20260101'<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> OrderDate <span class=\"hljs-operator\">&lt;<\/span>  <span class=\"hljs-string\">'20270101'<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0647 SQL Server \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062d\u062f\u0648\u062f\u0647 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0686\u0646\u062f \u0646\u0645\u0648\u0646\u0647 \u0631\u0627\u06cc\u062c \u062f\u06cc\u06af\u0631<\/h3>\n<h4 dir=\"rtl\" lang=\"fa\">\u0646\u0627\u0645\u0646\u0627\u0633\u0628<\/h4>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> <span class=\"hljs-keyword\">CONVERT<\/span>(<span class=\"hljs-type\">date<\/span>, CreatedAt) <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-string\">'2026-08-20'<\/span>\r\n<\/code><\/pre>\n<h4 dir=\"rtl\" lang=\"fa\">\u0645\u0646\u0627\u0633\u0628<\/h4>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> CreatedAt <span class=\"hljs-operator\">&gt;=<\/span> <span class=\"hljs-string\">'20260820'<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> CreatedAt <span class=\"hljs-operator\">&lt;<\/span>  <span class=\"hljs-string\">'20260821'<\/span>\r\n<\/code><\/pre>\n<h4 dir=\"rtl\" lang=\"fa\">\u0646\u0627\u0645\u0646\u0627\u0633\u0628<\/h4>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> ISNULL(Status, <span class=\"hljs-number\">0<\/span>) <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n<\/code><\/pre>\n<h4 dir=\"rtl\" lang=\"fa\">\u0645\u0646\u0627\u0633\u0628<\/h4>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632\u060c \u0645\u0642\u062f\u0627\u0631 <code>NULL<\/code> \u0631\u0627 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n   <span class=\"hljs-keyword\">OR<\/span> Status <span class=\"hljs-keyword\">IS<\/span> <span class=\"hljs-keyword\">NULL<\/span>;\r\n<\/code><\/pre>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f2. \u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f Query \u0627\u0635\u0644\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0633\u0641\u0627\u0631\u0634\u200c\u0647\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> OrderId, CustomerId, TotalAmount, CreatedAt\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@Status<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> CreatedAt <span class=\"hljs-operator\">&gt;=<\/span> <span class=\"hljs-variable\">@FromDate<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> CreatedAt <span class=\"hljs-operator\">&lt;<\/span> <span class=\"hljs-variable\">@ToDate<\/span>\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> CreatedAt <span class=\"hljs-keyword\">DESC<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u06cc\u06a9 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0646\u0627\u0633\u0628 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> INDEX IX_Orders_Customer_Status_CreatedAt\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Orders\r\n(\r\n    CustomerId,\r\n    Status,\r\n    CreatedAt <span class=\"hljs-keyword\">DESC<\/span>\r\n)\r\nINCLUDE\r\n(\r\n    OrderId,\r\n    TotalAmount\r\n);\r\n<\/code><\/pre>\n<h3 dir=\"rtl\" lang=\"fa\">\u0686\u0631\u0627 \u062a\u0631\u062a\u06cc\u0628 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0645\u0647\u0645 \u0627\u0633\u062a\u061f<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li><code>CustomerId<\/code> \u0648 <code>Status<\/code> \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0628\u0631\u0627\u0628\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n<li><code>CreatedAt<\/code> \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0628\u0627\u0632\u0647\u200c\u0627\u06cc \u0648 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li>\u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc <code>OrderId<\/code> \u0648 <code>TotalAmount<\/code> \u062f\u0631 \u0628\u062e\u0634 <code>INCLUDE<\/code> \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0647\u200c\u0627\u0646\u062f \u062a\u0627 SQL Server \u0628\u0631\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0647 \u062c\u062f\u0648\u0644 \u0627\u0635\u0644\u06cc \u0645\u0631\u0627\u062c\u0639\u0647 \u0646\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p dir=\"rtl\" lang=\"fa\">\u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 <code>WHERE<\/code> \u0648 <code>JOIN<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06a9\u0627\u0646\u062f\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0628\u062e\u0634 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0647\u0633\u062a\u0646\u062f. \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0641\u0642\u0637 \u062f\u0631 <code>SELECT<\/code> \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f\u060c \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc <code>INCLUDE<\/code> \u0645\u0646\u0627\u0633\u0628\u200c\u062a\u0631\u0646\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f3. \u0645\u0634\u06a9\u0644 Key Lookup \u0631\u0627 \u0628\u0631\u0637\u0631\u0641 \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> INDEX IX_Orders_CustomerId\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Orders(CustomerId);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0648 Query \u0632\u06cc\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> OrderId, CustomerId, TotalAmount, CreatedAt, Status\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">SQL Server \u0627\u0628\u062a\u062f\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0633\u0627\u06cc\u0631 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0628\u0647 \u062c\u062f\u0648\u0644 \u0627\u0635\u0644\u06cc \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u062f. \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u062f\u0631 Execution Plan \u0628\u0627 \u0639\u0646\u0648\u0627\u0646 <code>Key Lookup<\/code> \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06af\u0631 Query \u067e\u0631\u062a\u06a9\u0631\u0627\u0631 \u0627\u0633\u062a\u060c \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0627 \u067e\u0648\u0634\u0634\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> INDEX IX_Orders_CustomerId_Covering\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Orders(CustomerId)\r\nINCLUDE\r\n(\r\n    OrderId,\r\n    TotalAmount,\r\n    CreatedAt,\r\n    Status\r\n);\r\n<\/code><\/pre>\n<h3 dir=\"rtl\" lang=\"fa\">\u0686\u0647 \u0632\u0645\u0627\u0646\u06cc Covering Index \u0646\u0633\u0627\u0632\u06cc\u0645\u061f<\/h3>\n<p dir=\"rtl\" lang=\"fa\">Covering Index \u0647\u0645\u06cc\u0634\u0647 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0627\u0647 \u062d\u0644 \u0646\u06cc\u0633\u062a. \u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0632\u0631\u06af \u0628\u0627\u0639\u062b \u0627\u0641\u0632\u0627\u06cc\u0634 \u0647\u0632\u06cc\u0646\u0647 \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li><code>INSERT<\/code><\/li>\n<li><code>UPDATE<\/code><\/li>\n<li><code>DELETE<\/code><\/li>\n<li>\u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633<\/li>\n<li>\u0645\u0635\u0631\u0641 \u0641\u0636\u0627\u06cc \u062f\u06cc\u0633\u06a9<\/li>\n<li>\u0645\u0635\u0631\u0641 \u062d\u0627\u0641\u0638\u0647<\/li>\n<\/ul>\n<p dir=\"rtl\" lang=\"fa\">\u0641\u0642\u0637 \u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631 \u0648 \u062d\u0633\u0627\u0633 \u0628\u0647 \u0632\u0645\u0627\u0646 \u067e\u0627\u0633\u062e\u060c \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f4. \u0627\u0632 SELECT * \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u0641\u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u06cc\u062f<\/h2>\n<h3 dir=\"rtl\" lang=\"fa\">Query \u0646\u0627\u0645\u0646\u0627\u0633\u0628<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-operator\">*<\/span>\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646 Query \u0628\u0647 \u062a\u0645\u0627\u0645 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0648\u0627\u0628\u0633\u062a\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0632 \u062f\u06cc\u0633\u06a9 \u062e\u0648\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li>\u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Covering Index \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f.<\/li>\n<li>\u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u0628\u06cc\u0646 SQL Server \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li>\u062a\u063a\u06cc\u06cc\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u062c\u062f\u0648\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0631\u0641\u062a\u0627\u0631 Query \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f.<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">Query \u0628\u0647\u062a\u0631<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    OrderId,\r\n    CustomerId,\r\n    Status,\r\n    TotalAmount,\r\n    CreatedAt\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 API\u0647\u0627 \u0648 \u0635\u0641\u062d\u0627\u062a \u0644\u06cc\u0633\u062a\u060c \u0641\u0642\u0637 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0648\u0627\u0642\u0639\u0627\u064b \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f5. Pagination \u0631\u0627 \u0628\u0627 Keyset \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u062c\u062f\u0648\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>OFFSET<\/code> \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0627\u062a \u0627\u0646\u062a\u0647\u0627\u06cc\u06cc \u0628\u0633\u06cc\u0627\u0631 \u067e\u0631\u0647\u0632\u06cc\u0646\u0647 \u0627\u0633\u062a.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0631\u0648\u0634 \u067e\u0631\u0647\u0632\u06cc\u0646\u0647<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    OrderId,\r\n    CreatedAt,\r\n    TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> CreatedAt <span class=\"hljs-keyword\">DESC<\/span>, OrderId <span class=\"hljs-keyword\">DESC<\/span>\r\n<span class=\"hljs-keyword\">OFFSET<\/span> <span class=\"hljs-number\">500000<\/span> <span class=\"hljs-keyword\">ROWS<\/span>\r\n<span class=\"hljs-keyword\">FETCH<\/span> NEXT <span class=\"hljs-number\">50<\/span> <span class=\"hljs-keyword\">ROWS<\/span> <span class=\"hljs-keyword\">ONLY<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">SQL Server \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0628\u0627\u06cc\u062f \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f\u06cc \u0631\u06a9\u0648\u0631\u062f \u0631\u0627 \u0645\u0631\u062a\u0628 \u0648 \u0631\u062f \u06a9\u0646\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0631\u0648\u0634 Keyset Pagination<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634\u060c \u0622\u062e\u0631\u06cc\u0646 \u0631\u06a9\u0648\u0631\u062f \u0635\u0641\u062d\u0647 \u0642\u0628\u0644\u06cc \u0631\u0627 \u0628\u0647 Query \u0628\u0639\u062f\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">DECLARE<\/span> <span class=\"hljs-variable\">@LastCreatedAt<\/span> datetime2 <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-string\">'2026-08-15 12:30:00'<\/span>;\r\n<span class=\"hljs-keyword\">DECLARE<\/span> <span class=\"hljs-variable\">@LastOrderId<\/span> <span class=\"hljs-type\">bigint<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">987654<\/span>;\r\n\r\n<span class=\"hljs-keyword\">SELECT<\/span> TOP (<span class=\"hljs-number\">50<\/span>)\r\n    OrderId,\r\n    CreatedAt,\r\n    TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span>\r\n    CreatedAt <span class=\"hljs-operator\">&lt;<\/span> <span class=\"hljs-variable\">@LastCreatedAt<\/span>\r\n    <span class=\"hljs-keyword\">OR<\/span>\r\n    (\r\n        CreatedAt <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@LastCreatedAt<\/span>\r\n        <span class=\"hljs-keyword\">AND<\/span> OrderId <span class=\"hljs-operator\">&lt;<\/span> <span class=\"hljs-variable\">@LastOrderId<\/span>\r\n    )\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> CreatedAt <span class=\"hljs-keyword\">DESC<\/span>, OrderId <span class=\"hljs-keyword\">DESC<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 Query \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0632\u06cc\u0631 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> INDEX IX_Orders_CreatedAt_OrderId\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Orders(CreatedAt <span class=\"hljs-keyword\">DESC<\/span>, OrderId <span class=\"hljs-keyword\">DESC<\/span>)\r\nINCLUDE\r\n(\r\n    TotalAmount\r\n);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u062c\u062f\u0648\u0644\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u060c \u062a\u0631\u0627\u06a9\u0646\u0634 \u0645\u0627\u0644\u06cc\u060c \u06af\u0632\u0627\u0631\u0634 \u0631\u062e\u062f\u0627\u062f\u0647\u0627 \u0648 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u062d\u062c\u06cc\u0645 \u0639\u0645\u0644\u06a9\u0631\u062f \u067e\u0627\u06cc\u062f\u0627\u0631\u062a\u0631\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f6. \u0645\u0631\u0627\u0642\u0628 Parameter Sniffing \u0628\u0627\u0634\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">SQL Server \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0646\u06af\u0627\u0645 \u0627\u0648\u0644\u06cc\u0646 \u0627\u062c\u0631\u0627\u06cc Stored Procedure\u060c \u0645\u0642\u062f\u0627\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0622\u0646 Execution Plan \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06af\u0631 \u062a\u0648\u0632\u06cc\u0639 \u062f\u0627\u062f\u0647 \u06cc\u06a9\u0646\u0648\u0627\u062e\u062a \u0646\u0628\u0627\u0634\u062f\u060c \u06cc\u06a9 Plan \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u0648 \u0628\u0631\u0627\u06cc \u0645\u0642\u062f\u0627\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0636\u0639\u06cc\u0641 \u0628\u0627\u0634\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0641\u0642\u0637 \u06f1\u06f0 \u0633\u0641\u0627\u0631\u0634 \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0645\u0634\u062a\u0631\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0686\u0646\u062f \u0645\u06cc\u0644\u06cc\u0648\u0646 \u0633\u0641\u0627\u0631\u0634 \u062b\u0628\u062a \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">OR<\/span> <span class=\"hljs-keyword\">ALTER<\/span> <span class=\"hljs-keyword\">PROCEDURE<\/span> Sales.GetCustomerOrders\r\n    <span class=\"hljs-variable\">@CustomerId<\/span> <span class=\"hljs-type\">bigint<\/span>\r\n<span class=\"hljs-keyword\">AS<\/span>\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    <span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\r\n\r\n    <span class=\"hljs-keyword\">SELECT<\/span>\r\n        OrderId,\r\n        CreatedAt,\r\n        TotalAmount,\r\n        Status\r\n    <span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n    <span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>;\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a Plan \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u06a9\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc Query \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0628\u0632\u0631\u06af \u0645\u0646\u0627\u0633\u0628 \u0646\u0628\u0627\u0634\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0631\u0627\u0647 \u062d\u0644 \u0627\u0648\u0644: \u0628\u0627\u0632\u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062f\u0631 \u0647\u0645\u0627\u0646 \u0627\u062c\u0631\u0627<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    OrderId,\r\n    CreatedAt,\r\n    TotalAmount,\r\n    Status\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>\r\nOPTION (RECOMPILE);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc\u06cc \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a \u06a9\u0647:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u062a\u0639\u062f\u0627\u062f \u0627\u062c\u0631\u0627\u06cc \u0622\u0646\u0647\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f \u0646\u06cc\u0633\u062a.<\/li>\n<li>\u0627\u062e\u062a\u0644\u0627\u0641 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0628\u06cc\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0632\u06cc\u0627\u062f \u0627\u0633\u062a.<\/li>\n<li>\u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a Plan \u0646\u0633\u0628\u062a \u0628\u0647 \u0647\u0632\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u06a9\u0645\u062a\u0631 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u0631\u0627\u0647 \u062d\u0644 \u062f\u0648\u0645: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 OPTIMIZE FOR UNKNOWN<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    OrderId,\r\n    CreatedAt,\r\n    TotalAmount,\r\n    Status\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>\r\nOPTION (OPTIMIZE <span class=\"hljs-keyword\">FOR<\/span> <span class=\"hljs-literal\">UNKNOWN<\/span>);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634 SQL Server \u0627\u0632 \u0645\u0642\u062f\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a Plan \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0631\u0622\u0648\u0631\u062f \u0639\u0645\u0648\u0645\u06cc\u200c\u062a\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0631\u0627\u0647 \u062d\u0644 \u0633\u0648\u0645: \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u0644\u06cc<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">DECLARE<\/span> <span class=\"hljs-variable\">@LocalCustomerId<\/span> <span class=\"hljs-type\">bigint<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>;\r\n\r\n<span class=\"hljs-keyword\">SELECT<\/span>\r\n    OrderId,\r\n    CreatedAt,\r\n    TotalAmount,\r\n    Status\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@LocalCustomerId<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646 \u0631\u0648\u0634 \u06af\u0627\u0647\u06cc \u0645\u0634\u06a9\u0644 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0627\u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631\u0622\u0648\u0631\u062f SQL Server \u0631\u0627 \u0636\u0639\u06cc\u0641 \u06a9\u0646\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0627\u06cc\u062f \u0628\u0627 Execution Plan \u0648 \u0622\u0645\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u0648\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f7. Implicit Conversion \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u062a\u0628\u062f\u06cc\u0644 \u0636\u0645\u0646\u06cc \u0646\u0648\u0639 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0627\u0646\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0635\u062d\u06cc\u062d \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0634\u0648\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0646\u0648\u0639 \u0633\u062a\u0648\u0646 <code>CustomerId<\/code> \u0627\u0632 \u0646\u0648\u0639 <code>bigint<\/code> \u0627\u0633\u062a:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE TABLE<\/span> Sales.Orders\r\n(\r\n    OrderId <span class=\"hljs-type\">bigint<\/span> <span class=\"hljs-keyword\">NOT NULL<\/span>,\r\n    CustomerId <span class=\"hljs-type\">bigint<\/span> <span class=\"hljs-keyword\">NOT NULL<\/span>\r\n);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a <code>nvarchar<\/code> \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> N<span class=\"hljs-string\">'1250'<\/span>\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a SQL Server \u0645\u062c\u0628\u0648\u0631 \u0628\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0646\u0648\u0639 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f. \u062f\u0631 Execution Plan\u060c \u0647\u0634\u062f\u0627\u0631 <code>CONVERT_IMPLICIT<\/code> \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0631\u0648\u0634 \u0635\u062d\u06cc\u062d<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 Stored Procedure \u0628\u0627\u06cc\u062f \u0628\u0627 \u0646\u0648\u0639 \u0633\u062a\u0648\u0646 \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0627\u0634\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">OR<\/span> <span class=\"hljs-keyword\">ALTER<\/span> <span class=\"hljs-keyword\">PROCEDURE<\/span> Sales.GetOrders\r\n    <span class=\"hljs-variable\">@CustomerId<\/span> <span class=\"hljs-type\">bigint<\/span>\r\n<span class=\"hljs-keyword\">AS<\/span>\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    <span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\r\n\r\n    <span class=\"hljs-keyword\">SELECT<\/span> OrderId, CreatedAt, TotalAmount\r\n    <span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n    <span class=\"hljs-keyword\">WHERE<\/span> CustomerId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@CustomerId<\/span>;\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc .NET \u0646\u06cc\u0632 \u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0631\u0627 \u0635\u062d\u06cc\u062d \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\">command.Parameters.Add(<span class=\"hljs-string\">\"@CustomerId\"<\/span>, SqlDbType.BigInt).Value = customerId;\r\n<\/code><\/pre>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f8. JOIN \u0631\u0627 \u0628\u0627 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u062f\u0631\u0633\u062a \u0648 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0646\u0627\u0633\u0628 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f Query \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u200c\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    o.OrderId,\r\n    o.CreatedAt,\r\n    c.CustomerName,\r\n    o.TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders <span class=\"hljs-keyword\">AS<\/span> o\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> Sales.Customers <span class=\"hljs-keyword\">AS<\/span> c\r\n    <span class=\"hljs-keyword\">ON<\/span> c.CustomerId <span class=\"hljs-operator\">=<\/span> o.CustomerId\r\n<span class=\"hljs-keyword\">WHERE<\/span> o.Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> o.CreatedAt <span class=\"hljs-operator\">&gt;=<\/span> <span class=\"hljs-variable\">@FromDate<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646\u062f\u06a9\u0633\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> INDEX IX_Orders_Status_CreatedAt_CustomerId\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Orders(Status, CreatedAt, CustomerId)\r\nINCLUDE\r\n(\r\n    OrderId,\r\n    TotalAmount\r\n);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0648 \u062f\u0631 \u062c\u062f\u0648\u0644 \u0645\u0634\u062a\u0631\u06cc:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">UNIQUE<\/span> INDEX UX_Customers_CustomerId\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Customers(CustomerId)\r\nINCLUDE\r\n(\r\n    CustomerName\r\n);\r\n<\/code><\/pre>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0632 JOIN \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06af\u0631 \u0647\u06cc\u0686 \u0633\u062a\u0648\u0646\u06cc \u0627\u0632 \u062c\u062f\u0648\u0644 \u0645\u0634\u062a\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u06cc\u0646 JOIN \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> o.OrderId, o.TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders <span class=\"hljs-keyword\">AS<\/span> o\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> Sales.Customers <span class=\"hljs-keyword\">AS<\/span> c\r\n    <span class=\"hljs-keyword\">ON<\/span> c.CustomerId <span class=\"hljs-operator\">=<\/span> o.CustomerId\r\n<span class=\"hljs-keyword\">WHERE<\/span> o.Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0646\u0633\u062e\u0647 \u0633\u0627\u062f\u0647\u200c\u062a\u0631:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> OrderId, TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0647\u0631 JOIN \u0627\u0636\u0627\u0641\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0647\u0632\u06cc\u0646\u0647 CPU\u060c \u062d\u0627\u0641\u0638\u0647 \u0648 I\/O \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f9. \u0628\u0647 \u062c\u0627\u06cc IN \u0628\u0632\u0631\u06af \u0627\u0632 \u0631\u0648\u0634 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/h2>\n<h3 dir=\"rtl\" lang=\"fa\">\u0631\u0648\u0634 \u0645\u0634\u06a9\u0644 \u0633\u0627\u0632<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> OrderId, TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> OrderId <span class=\"hljs-keyword\">IN<\/span>\r\n(\r\n    <span class=\"hljs-number\">100001<\/span>, <span class=\"hljs-number\">100002<\/span>, <span class=\"hljs-number\">100003<\/span>, <span class=\"hljs-number\">100004<\/span>\r\n);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0645 \u0634\u0646\u0627\u0633\u0647 \u0645\u0634\u06a9\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648 \u0641\u0647\u0631\u0633\u062a\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0627\u0632 Table-Valued Parameter \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u062a\u0639\u0631\u06cc\u0641 \u0646\u0648\u0639 \u062c\u062f\u0648\u0644\u06cc<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> TYPE Sales.OrderIdList <span class=\"hljs-keyword\">AS<\/span> <span class=\"hljs-keyword\">TABLE<\/span>\r\n(\r\n    OrderId <span class=\"hljs-type\">bigint<\/span> <span class=\"hljs-keyword\">NOT NULL<\/span> <span class=\"hljs-keyword\">PRIMARY KEY<\/span>\r\n);\r\n<\/code><\/pre>\n<h3 lang=\"en\">Stored Procedure<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">OR<\/span> <span class=\"hljs-keyword\">ALTER<\/span> <span class=\"hljs-keyword\">PROCEDURE<\/span> Sales.GetOrdersByIds\r\n    <span class=\"hljs-variable\">@OrderIds<\/span> Sales.OrderIdList READONLY\r\n<span class=\"hljs-keyword\">AS<\/span>\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    <span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\r\n\r\n    <span class=\"hljs-keyword\">SELECT<\/span>\r\n        o.OrderId,\r\n        o.CustomerId,\r\n        o.TotalAmount,\r\n        o.Status\r\n    <span class=\"hljs-keyword\">FROM<\/span> Sales.Orders <span class=\"hljs-keyword\">AS<\/span> o\r\n    <span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> <span class=\"hljs-variable\">@OrderIds<\/span> <span class=\"hljs-keyword\">AS<\/span> ids\r\n        <span class=\"hljs-keyword\">ON<\/span> ids.OrderId <span class=\"hljs-operator\">=<\/span> o.OrderId;\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0646\u0633\u0628\u062a \u0628\u0647 \u0633\u0627\u062e\u062a\u0646 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc \u0648 Dynamic SQL \u0642\u0627\u0628\u0644 \u06a9\u0646\u062a\u0631\u0644\u200c\u062a\u0631 \u0648 \u0627\u0645\u0646\u200c\u062a\u0631 \u0627\u0633\u062a.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1\u06f0. LIKE \u0631\u0627 \u0628\u0631\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u062a\u0646\u06cc \u062f\u0631\u0633\u062a \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/h2>\n<h3 dir=\"rtl\" lang=\"fa\">Query \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> CustomerName <span class=\"hljs-keyword\">LIKE<\/span> <span class=\"hljs-variable\">@Search<\/span> <span class=\"hljs-operator\">+<\/span> N<span class=\"hljs-string\">'%'<\/span>\r\n<\/code><\/pre>\n<h3 dir=\"rtl\" lang=\"fa\">Query \u067e\u0631\u0647\u0632\u06cc\u0646\u0647<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> CustomerName <span class=\"hljs-keyword\">LIKE<\/span> N<span class=\"hljs-string\">'%'<\/span> <span class=\"hljs-operator\">+<\/span> <span class=\"hljs-variable\">@Search<\/span> <span class=\"hljs-operator\">+<\/span> N<span class=\"hljs-string\">'%'<\/span>\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u062d\u0627\u0644\u062a \u062f\u0648\u0645\u060c SQL Server \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0639\u0645\u0648\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0627\u0628\u062a\u062f\u0627\u06cc \u0639\u0628\u0627\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0648\u0627\u0642\u0639\u06cc \u062f\u0631 \u0645\u062a\u0646\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c Full-Text Search \u06af\u0632\u06cc\u0646\u0647 \u0645\u0646\u0627\u0633\u0628\u200c\u062a\u0631\u06cc \u0627\u0633\u062a:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> FULLTEXT CATALOG CustomerCatalog <span class=\"hljs-keyword\">AS<\/span> <span class=\"hljs-keyword\">DEFAULT<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0633\u067e\u0633 \u0631\u0648\u06cc \u0633\u062a\u0648\u0646 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 Full-Text Index \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 Query \u0631\u0627 \u0628\u0627 <code>CONTAINS<\/code> \u06cc\u0627 <code>FREETEXT<\/code> \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> CustomerId, CustomerName\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Customers\r\n<span class=\"hljs-keyword\">WHERE<\/span> <span class=\"hljs-keyword\">CONTAINS<\/span>(CustomerName, <span class=\"hljs-variable\">@SearchTerm<\/span>);\r\n<\/code><\/pre>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1\u06f1. \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627 \u0631\u0627 \u06a9\u0648\u062a\u0627\u0647 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u060c \u062a\u0631\u0627\u06a9\u0646\u0634 \u0637\u0648\u0644\u0627\u0646\u06cc \u0641\u0642\u0637 \u06cc\u06a9 \u0645\u0634\u06a9\u0644 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0646\u06cc\u0633\u062a\u061b \u0628\u0644\u06a9\u0647 \u0628\u0627\u0639\u062b Blocking \u0648 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0632\u0645\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u0633\u0627\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0644\u06af\u0648\u06cc \u0646\u0627\u0645\u0646\u0627\u0633\u0628<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">BEGIN<\/span> TRANSACTION;\r\n\r\n<span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-operator\">*<\/span>\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> OrderId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@OrderId<\/span>;\r\n\r\n<span class=\"hljs-comment\">-- \u067e\u0631\u062f\u0627\u0632\u0634 \u0637\u0648\u0644\u0627\u0646\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647<\/span>\r\n<span class=\"hljs-comment\">-- \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062e\u0627\u0631\u062c\u06cc<\/span>\r\n<span class=\"hljs-comment\">-- \u0645\u062d\u0627\u0633\u0628\u0647 \u0633\u0646\u06af\u06cc\u0646<\/span>\r\n\r\n<span class=\"hljs-keyword\">UPDATE<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">SET<\/span> Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">2<\/span>\r\n<span class=\"hljs-keyword\">WHERE<\/span> OrderId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@OrderId<\/span>;\r\n\r\n<span class=\"hljs-keyword\">COMMIT<\/span> TRANSACTION;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u0635\u0644\u0647\u060c \u0642\u0641\u0644\u200c\u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u062d\u0641\u0638 \u0634\u0648\u0646\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0644\u06af\u0648\u06cc \u0628\u0647\u062a\u0631<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u0628\u062a\u062f\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0644\u0627\u0632\u0645 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f\u060c \u067e\u0631\u062f\u0627\u0632\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0631\u062c \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u0648 \u0641\u0642\u0637 \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u0631 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    OrderId,\r\n    Status,\r\n    TotalAmount\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> OrderId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@OrderId<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0633\u067e\u0633:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SET<\/span> XACT_ABORT <span class=\"hljs-keyword\">ON<\/span>;\r\n\r\n<span class=\"hljs-keyword\">BEGIN<\/span> TRY\r\n    <span class=\"hljs-keyword\">BEGIN<\/span> TRANSACTION;\r\n\r\n    <span class=\"hljs-keyword\">UPDATE<\/span> Sales.Orders\r\n    <span class=\"hljs-keyword\">SET<\/span>\r\n        Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">2<\/span>,\r\n        UpdatedAt <span class=\"hljs-operator\">=<\/span> SYSUTCDATETIME()\r\n    <span class=\"hljs-keyword\">WHERE<\/span> OrderId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@OrderId<\/span>\r\n      <span class=\"hljs-keyword\">AND<\/span> Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>;\r\n\r\n    IF @<span class=\"hljs-variable\">@ROWCOUNT<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">0<\/span>\r\n        THROW <span class=\"hljs-number\">50001<\/span>, <span class=\"hljs-string\">'Order is not available for update.'<\/span>, <span class=\"hljs-number\">1<\/span>;\r\n\r\n    <span class=\"hljs-keyword\">INSERT INTO<\/span> Sales.OrderStatusHistory\r\n    (\r\n        OrderId,\r\n        OldStatus,\r\n        NewStatus,\r\n        CreatedAt\r\n    )\r\n    <span class=\"hljs-keyword\">VALUES<\/span>\r\n    (\r\n        <span class=\"hljs-variable\">@OrderId<\/span>,\r\n        <span class=\"hljs-number\">1<\/span>,\r\n        <span class=\"hljs-number\">2<\/span>,\r\n        SYSUTCDATETIME()\r\n    );\r\n\r\n    <span class=\"hljs-keyword\">COMMIT<\/span> TRANSACTION;\r\n<span class=\"hljs-keyword\">END<\/span> TRY\r\n<span class=\"hljs-keyword\">BEGIN<\/span> CATCH\r\n    IF XACT_STATE() <span class=\"hljs-operator\">&lt;&gt;<\/span> <span class=\"hljs-number\">0<\/span>\r\n        <span class=\"hljs-keyword\">ROLLBACK<\/span> TRANSACTION;\r\n\r\n    THROW;\r\n<span class=\"hljs-keyword\">END<\/span> CATCH;\r\n<\/code><\/pre>\n<h3 dir=\"rtl\" lang=\"fa\">\u0646\u06a9\u062a\u0647 \u0645\u0647\u0645<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u0634\u0631\u0637 \u0648\u0636\u0639\u06cc\u062a \u062f\u0631 \u062f\u0633\u062a\u0648\u0631 <code>UPDATE<\/code> \u0646\u0642\u0634 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u062f\u0627\u0631\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">WHERE<\/span> OrderId <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@OrderId<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> Status <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u0627\u06af\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u06cc\u06af\u0631\u06cc \u0642\u0628\u0644\u0627\u064b \u0648\u0636\u0639\u06cc\u062a \u0633\u0641\u0627\u0631\u0634 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0639\u0645\u0644\u06cc\u0627\u062a \u0641\u0639\u0644\u06cc \u0628\u062f\u0648\u0646 \u0628\u0631\u0631\u0633\u06cc \u0627\u0636\u0627\u0641\u06cc \u0634\u06a9\u0633\u062a \u0645\u06cc\u200c\u062e\u0648\u0631\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1\u06f2. Blocking \u0648 Deadlock \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u0646\u062a\u0638\u0627\u0631:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    r.session_id,\r\n    r.status,\r\n    r.command,\r\n    r.wait_type,\r\n    r.wait_time,\r\n    r.blocking_session_id,\r\n    r.cpu_time,\r\n    r.logical_reads,\r\n    t.text <span class=\"hljs-keyword\">AS<\/span> SqlText\r\n<span class=\"hljs-keyword\">FROM<\/span> sys.dm_exec_requests <span class=\"hljs-keyword\">AS<\/span> r\r\n<span class=\"hljs-keyword\">CROSS<\/span> APPLY sys.dm_exec_sql_text(r.sql_handle) <span class=\"hljs-keyword\">AS<\/span> t\r\n<span class=\"hljs-keyword\">WHERE<\/span> r.session_id <span class=\"hljs-operator\">&lt;&gt;<\/span> @<span class=\"hljs-variable\">@SPID<\/span>\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> r.wait_time <span class=\"hljs-keyword\">DESC<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Session\u0647\u0627\u06cc \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0647:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    session_id,\r\n    blocking_session_id,\r\n    wait_type,\r\n    wait_time,\r\n    wait_resource\r\n<span class=\"hljs-keyword\">FROM<\/span> sys.dm_exec_requests\r\n<span class=\"hljs-keyword\">WHERE<\/span> blocking_session_id <span class=\"hljs-operator\">&lt;&gt;<\/span> <span class=\"hljs-number\">0<\/span>;\r\n<\/code><\/pre>\n<h3 dir=\"rtl\" lang=\"fa\">\u0639\u0644\u062a\u200c\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c Blocking<\/h3>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc<\/li>\n<li>\u0646\u0628\u0648\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0648\u06cc \u0634\u0631\u0637 <code>UPDATE<\/code> \u06cc\u0627 <code>DELETE<\/code><\/li>\n<li>\u0627\u0633\u06a9\u0646 \u06af\u0633\u062a\u0631\u062f\u0647 \u062c\u062f\u0648\u0644<\/li>\n<li>\u0627\u062c\u0631\u0627\u06cc \u06af\u0632\u0627\u0631\u0634 \u0633\u0646\u06af\u06cc\u0646 \u0631\u0648\u06cc \u062c\u062f\u0627\u0648\u0644 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc<\/li>\n<li>\u062a\u0631\u062a\u06cc\u0628 \u0645\u062a\u0641\u0627\u0648\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u062f\u0627\u0648\u0644 \u062f\u0631 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641<\/li>\n<li>\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0633\u062a\u0647\u200c\u0627\u06cc \u062f\u0631 \u0633\u0627\u0639\u0627\u062a \u0634\u0644\u0648\u063a<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0644\u06af\u0648\u06cc \u06a9\u0627\u0647\u0634 Deadlock<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u062a\u0645\u0627\u0645 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u062a\u0631\u062a\u06cc\u0628 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u062f\u0627\u0648\u0644 \u0631\u0627 \u062b\u0627\u0628\u062a \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u06cc\u06a9 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0627\u0628\u062a\u062f\u0627 <code>Customers<\/code> \u0648 \u0633\u067e\u0633 <code>Orders<\/code> \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u062a\u0631\u0627\u06a9\u0646\u0634 \u062f\u06cc\u06af\u0631 \u0646\u0628\u0627\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 <code>Orders<\/code> \u0648 \u0628\u0639\u062f <code>Customers<\/code> \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0632\u0631\u06af \u0631\u0627 \u0628\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u200c\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code class=\"hljs\">WHILE <span class=\"hljs-number\">1<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n    <span class=\"hljs-keyword\">DELETE<\/span> TOP (<span class=\"hljs-number\">1000<\/span>)\r\n    <span class=\"hljs-keyword\">FROM<\/span> Audit.Logs\r\n    <span class=\"hljs-keyword\">WHERE<\/span> CreatedAt <span class=\"hljs-operator\">&lt;<\/span> <span class=\"hljs-variable\">@BeforeDate<\/span>;\r\n\r\n    IF @<span class=\"hljs-variable\">@ROWCOUNT<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">0<\/span>\r\n        BREAK;\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n<\/code><\/pre>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1\u06f3. \u0633\u0637\u062d Isolation \u0631\u0627 \u0622\u06af\u0627\u0647\u0627\u0646\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc OLTP\u060c \u062e\u0648\u0627\u0646\u062f\u0646\u200c\u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc \u0628\u0627 \u0646\u0648\u0634\u062a\u0646\u200c\u0647\u0627 \u062a\u062f\u0627\u062e\u0644 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0627\u0647\u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u0647\u0645\u060c \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 <code>READ_COMMITTED_SNAPSHOT<\/code> \u0627\u0633\u062a:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">ALTER<\/span> DATABASE [SalesDb]\r\n<span class=\"hljs-keyword\">SET<\/span> READ_COMMITTED_SNAPSHOT <span class=\"hljs-keyword\">ON<\/span>\r\n<span class=\"hljs-keyword\">WITH<\/span> <span class=\"hljs-keyword\">ROLLBACK<\/span> IMMEDIATE;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u062e\u0648\u0627\u0646\u062f\u0646\u200c\u0647\u0627\u06cc \u0645\u0639\u0645\u0648\u0644\u06cc \u0627\u0632 Version Store \u062f\u0631 <code>tempdb<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06a9\u0645\u062a\u0631 \u0645\u0646\u062a\u0638\u0631 \u0642\u0641\u0644\u200c\u0647\u0627\u06cc \u0646\u0648\u0634\u062a\u0627\u0631\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u0645\u0627 \u067e\u06cc\u0634 \u0627\u0632 \u0641\u0639\u0627\u0644 \u0633\u0627\u0632\u06cc \u0628\u0627\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0628\u0631\u0631\u0633\u06cc \u0634\u0648\u062f:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u0641\u0636\u0627\u06cc \u06a9\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc <code>tempdb<\/code><\/li>\n<li>\u062d\u062c\u0645 Update \u0648 Delete<\/li>\n<li>\u0645\u062f\u062a \u0627\u062c\u0631\u0627\u06cc \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627<\/li>\n<li>\u0645\u0635\u0631\u0641 Version Store<\/li>\n<li>\u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 \u0631\u0641\u062a\u0627\u0631 \u062c\u062f\u06cc\u062f \u062e\u0648\u0627\u0646\u062f\u0646<\/li>\n<\/ul>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062b\u0628\u0627\u062a \u06a9\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u062f\u0627\u0631\u0646\u062f\u060c \u0633\u0637\u062d Isolation \u0631\u0627 \u0628\u062f\u0648\u0646 \u0628\u0631\u0631\u0633\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0646\u062f\u0647\u06cc\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1\u06f4. Statistics \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06af\u0631 Statistics \u0642\u062f\u06cc\u0645\u06cc \u0628\u0627\u0634\u062f\u060c SQL Server \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062a\u0639\u062f\u0627\u062f \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0627\u0634\u062a\u0628\u0627\u0647 \u062a\u062e\u0645\u06cc\u0646 \u0628\u0632\u0646\u062f \u0648 Join \u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0646\u0627\u0645\u0646\u0627\u0633\u0628 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0633\u062a\u06cc:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">UPDATE<\/span> STATISTICS Sales.Orders\r\n<span class=\"hljs-keyword\">WITH<\/span> FULLSCAN;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u062c\u062f\u0648\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c <code>FULLSCAN<\/code> \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u067e\u0631\u0647\u0632\u06cc\u0646\u0647 \u0628\u0627\u0634\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0633\u0627\u0639\u0627\u062a \u0645\u0646\u0627\u0633\u0628 \u0648 \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0632\u0645\u0627\u0646 \u0622\u062e\u0631\u06cc\u0646 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc Statistics:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n    OBJECT_SCHEMA_NAME(sp.object_id) <span class=\"hljs-keyword\">AS<\/span> SchemaName,\r\n    OBJECT_NAME(sp.object_id) <span class=\"hljs-keyword\">AS<\/span> TableName,\r\n    sp.stats_id,\r\n    sp.last_updated,\r\n    sp.rows,\r\n    sp.rows_sampled,\r\n    sp.modification_counter\r\n<span class=\"hljs-keyword\">FROM<\/span> sys.dm_db_stats_properties\r\n(\r\n    OBJECT_ID(N<span class=\"hljs-string\">'Sales.Orders'<\/span>),\r\n    <span class=\"hljs-number\">1<\/span>\r\n) <span class=\"hljs-keyword\">AS<\/span> sp;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u0633\u0631\u0639\u062a \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0641\u0642\u0637 \u0641\u0639\u0627\u0644 \u0628\u0648\u062f\u0646 Auto Update Statistics \u06a9\u0627\u0641\u06cc \u0646\u06cc\u0633\u062a. \u0622\u0645\u0627\u0631 Query Store\u060c \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc Query \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0627\u062f\u0647 \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1\u06f5. Query Store \u0631\u0627 \u0641\u0639\u0627\u0644 \u0648 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">Query Store \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Query\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0637\u0648\u0644 \u0632\u0645\u0627\u0646 \u06a9\u0646\u062f \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0641\u0639\u0627\u0644 \u0633\u0627\u0632\u06cc:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">ALTER<\/span> DATABASE [SalesDb]\r\n<span class=\"hljs-keyword\">SET<\/span> QUERY_STORE <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">ON<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Query\u0647\u0627\u06cc \u067e\u0631\u0647\u0632\u06cc\u0646\u0647:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> TOP (<span class=\"hljs-number\">20<\/span>)\r\n    qt.query_sql_text,\r\n    rs.execution_count,\r\n    rs.avg_duration,\r\n    rs.avg_cpu_time,\r\n    rs.avg_logical_io_reads,\r\n    rs.last_execution_time\r\n<span class=\"hljs-keyword\">FROM<\/span> sys.query_store_query_text <span class=\"hljs-keyword\">AS<\/span> qt\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> sys.query_store_query <span class=\"hljs-keyword\">AS<\/span> q\r\n    <span class=\"hljs-keyword\">ON<\/span> q.query_text_id <span class=\"hljs-operator\">=<\/span> qt.query_text_id\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> sys.query_store_plan <span class=\"hljs-keyword\">AS<\/span> p\r\n    <span class=\"hljs-keyword\">ON<\/span> p.query_id <span class=\"hljs-operator\">=<\/span> q.query_id\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> sys.query_store_runtime_stats <span class=\"hljs-keyword\">AS<\/span> rs\r\n    <span class=\"hljs-keyword\">ON<\/span> rs.plan_id <span class=\"hljs-operator\">=<\/span> p.plan_id\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> rs.avg_duration <span class=\"hljs-keyword\">DESC<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Query\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639 \u0632\u0645\u0627\u0646 \u0631\u0627 \u0645\u0635\u0631\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u0646\u062f:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> TOP (<span class=\"hljs-number\">20<\/span>)\r\n    qt.query_sql_text,\r\n    <span class=\"hljs-built_in\">SUM<\/span>(rs.count_executions) <span class=\"hljs-keyword\">AS<\/span> TotalExecutions,\r\n    <span class=\"hljs-built_in\">SUM<\/span>(rs.avg_duration <span class=\"hljs-operator\">*<\/span> rs.count_executions) <span class=\"hljs-keyword\">AS<\/span> TotalDuration\r\n<span class=\"hljs-keyword\">FROM<\/span> sys.query_store_query_text <span class=\"hljs-keyword\">AS<\/span> qt\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> sys.query_store_query <span class=\"hljs-keyword\">AS<\/span> q\r\n    <span class=\"hljs-keyword\">ON<\/span> q.query_text_id <span class=\"hljs-operator\">=<\/span> qt.query_text_id\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> sys.query_store_plan <span class=\"hljs-keyword\">AS<\/span> p\r\n    <span class=\"hljs-keyword\">ON<\/span> p.query_id <span class=\"hljs-operator\">=<\/span> q.query_id\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> sys.query_store_runtime_stats <span class=\"hljs-keyword\">AS<\/span> rs\r\n    <span class=\"hljs-keyword\">ON<\/span> rs.plan_id <span class=\"hljs-operator\">=<\/span> p.plan_id\r\n<span class=\"hljs-keyword\">GROUP<\/span> <span class=\"hljs-keyword\">BY<\/span> qt.query_sql_text\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> TotalDuration <span class=\"hljs-keyword\">DESC<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u06af\u0627\u0647\u06cc Query\u0627\u06cc \u06a9\u0647 \u0645\u06cc\u0627\u0646\u06af\u06cc\u0646 \u0632\u0645\u0627\u0646 \u06a9\u0645\u06cc \u062f\u0627\u0631\u062f\u060c \u0628\u0647 \u062f\u0644\u06cc\u0644 \u062a\u0639\u062f\u0627\u062f \u0627\u062c\u0631\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f\u060c \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u0641\u0634\u0627\u0631 \u0631\u0627 \u0628\u0647 SQL Server \u0648\u0627\u0631\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u06f1\u06f6. \u0628\u0631\u0627\u06cc \u0627\u0635\u0644\u0627\u062d Query \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u0647\u0631 Query \u067e\u06cc\u0686\u06cc\u062f\u0647\u060c \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0634\u062e\u0635 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f:<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644: \u0627\u062c\u0631\u0627\u06cc \u0641\u0639\u0644\u06cc \u0631\u0627 \u062b\u0628\u062a \u06a9\u0646\u06cc\u062f<\/h3>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u0632\u0645\u0627\u0646 \u0645\u062a\u0648\u0633\u0637<\/li>\n<li>\u0632\u0645\u0627\u0646 \u0635\u062f\u06a9 \u06f9\u06f5 \u0648 \u06f9\u06f9<\/li>\n<li>CPU<\/li>\n<li>Logical Read<\/li>\n<li>\u062a\u0639\u062f\u0627\u062f \u0627\u062c\u0631\u0627<\/li>\n<li>\u062a\u0639\u062f\u0627\u062f Timeout<\/li>\n<li>Wait Type<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645: Execution Plan \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>Scan \u0631\u0648\u06cc \u062c\u062f\u0648\u0644 \u0628\u0632\u0631\u06af<\/li>\n<li>\u0627\u062e\u062a\u0644\u0627\u0641 Estimated Rows \u0648 Actual Rows<\/li>\n<li>Key Lookup \u062a\u06a9\u0631\u0627\u0631\u0634\u0648\u0646\u062f\u0647<\/li>\n<li>Sort \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0646\u0627\u0633\u0628<\/li>\n<li>Hash Join \u0646\u0627\u0634\u06cc \u0627\u0632 \u06a9\u0645\u0628\u0648\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u06cc\u0627 \u0628\u0631\u0622\u0648\u0631\u062f \u0627\u0634\u062a\u0628\u0627\u0647<\/li>\n<li>Implicit Conversion<\/li>\n<li>Spill \u0628\u0647 <code>tempdb<\/code><\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645: Query \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u06cc\u062f<\/h3>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u062d\u0630\u0641 <code>SELECT *<\/code><\/li>\n<li>\u062d\u0630\u0641 \u062a\u0627\u0628\u0639 \u0627\u0632 \u0631\u0648\u06cc \u0633\u062a\u0648\u0646 \u0641\u06cc\u0644\u062a\u0631<\/li>\n<li>\u0627\u0635\u0644\u0627\u062d Pagination<\/li>\n<li>\u062d\u0630\u0641 JOIN \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc<\/li>\n<li>\u0627\u0635\u0644\u0627\u062d \u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627<\/li>\n<li>\u06a9\u0627\u0647\u0634 \u062a\u0639\u062f\u0627\u062f \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645: \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/h3>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u0622\u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0627 \u0627\u0644\u06af\u0648\u06cc \u0648\u0627\u0642\u0639\u06cc Query \u0647\u0645\u0627\u0647\u0646\u06af \u0627\u0633\u062a\u061f<\/li>\n<li>\u0622\u06cc\u0627 \u062a\u0631\u062a\u06cc\u0628 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0635\u062d\u06cc\u062d \u0627\u0633\u062a\u061f<\/li>\n<li>\u0622\u06cc\u0627 Query \u0646\u06cc\u0627\u0632 \u0628\u0647 <code>INCLUDE<\/code> \u062f\u0627\u0631\u062f\u061f<\/li>\n<li>\u0622\u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0634\u0627\u0628\u0647 \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061f<\/li>\n<li>\u0647\u0632\u06cc\u0646\u0647 \u0627\u06cc\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0634\u062a\u0646 \u0686\u0642\u062f\u0631 \u0627\u0633\u062a\u061f<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645: \u0632\u06cc\u0631 \u0628\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<\/h3>\n<p dir=\"rtl\" lang=\"fa\">Query \u0641\u0642\u0637 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0646\u0634\u0648\u062f. \u062d\u062c\u0645 \u062f\u0627\u062f\u0647\u060c \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0648 \u0632\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0645\u0644 \u0628\u0631\u0631\u0633\u06cc \u06cc\u06a9 Query<\/h2>\n<h3 dir=\"rtl\" lang=\"fa\">Query \u0627\u0648\u0644\u06cc\u0647<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-operator\">*<\/span>\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders\r\n<span class=\"hljs-keyword\">WHERE<\/span> <span class=\"hljs-keyword\">CONVERT<\/span>(<span class=\"hljs-type\">date<\/span>, CreatedAt) <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@OrderDate<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span> CustomerId <span class=\"hljs-keyword\">IN<\/span>\r\n  (\r\n      <span class=\"hljs-keyword\">SELECT<\/span> CustomerId\r\n      <span class=\"hljs-keyword\">FROM<\/span> Sales.Customers\r\n      <span class=\"hljs-keyword\">WHERE<\/span> IsActive <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n  )\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> CreatedAt <span class=\"hljs-keyword\">DESC<\/span>\r\n<span class=\"hljs-keyword\">OFFSET<\/span> <span class=\"hljs-variable\">@Offset<\/span> <span class=\"hljs-keyword\">ROWS<\/span>\r\n<span class=\"hljs-keyword\">FETCH<\/span> NEXT <span class=\"hljs-variable\">@PageSize<\/span> <span class=\"hljs-keyword\">ROWS<\/span> <span class=\"hljs-keyword\">ONLY<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0645\u0634\u06a9\u0644\u200c\u0647\u0627\u06cc \u0627\u06cc\u0646 Query:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0627\u0628\u0639 \u0631\u0648\u06cc <code>CreatedAt<\/code><\/li>\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>SELECT *<\/code><\/li>\n<li>Pagination \u0628\u0627 <code>OFFSET<\/code> \u062f\u0631 \u0635\u0641\u062d\u0627\u062a \u0628\u0632\u0631\u06af<\/li>\n<li>\u0627\u062d\u062a\u0645\u0627\u0644 \u0627\u0633\u06a9\u0646 \u062c\u062f\u0648\u0644 Customers<\/li>\n<li>\u0646\u0627\u0645\u0634\u062e\u0635 \u0628\u0648\u062f\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632<\/li>\n<\/ul>\n<h3 dir=\"rtl\" lang=\"fa\">\u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647<\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> TOP (<span class=\"hljs-variable\">@PageSize<\/span>)\r\n    o.OrderId,\r\n    o.CustomerId,\r\n    o.CreatedAt,\r\n    o.TotalAmount,\r\n    o.Status\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders <span class=\"hljs-keyword\">AS<\/span> o\r\n<span class=\"hljs-keyword\">INNER<\/span> <span class=\"hljs-keyword\">JOIN<\/span> Sales.Customers <span class=\"hljs-keyword\">AS<\/span> c\r\n    <span class=\"hljs-keyword\">ON<\/span> c.CustomerId <span class=\"hljs-operator\">=<\/span> o.CustomerId\r\n<span class=\"hljs-keyword\">WHERE<\/span> c.IsActive <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">1<\/span>\r\n  <span class=\"hljs-keyword\">AND<\/span>\r\n  (\r\n      o.CreatedAt <span class=\"hljs-operator\">&lt;<\/span> <span class=\"hljs-variable\">@LastCreatedAt<\/span>\r\n      <span class=\"hljs-keyword\">OR<\/span>\r\n      (\r\n          o.CreatedAt <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-variable\">@LastCreatedAt<\/span>\r\n          <span class=\"hljs-keyword\">AND<\/span> o.OrderId <span class=\"hljs-operator\">&lt;<\/span> <span class=\"hljs-variable\">@LastOrderId<\/span>\r\n      )\r\n  )\r\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> o.CreatedAt <span class=\"hljs-keyword\">DESC<\/span>, o.OrderId <span class=\"hljs-keyword\">DESC<\/span>;\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646\u062f\u06a9\u0633\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc:<\/p>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> INDEX IX_Customers_IsActive_CustomerId\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Customers(IsActive, CustomerId);\r\n<\/code><\/pre>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">CREATE<\/span> INDEX IX_Orders_CreatedAt_OrderId_CustomerId\r\n<span class=\"hljs-keyword\">ON<\/span> Sales.Orders(CreatedAt <span class=\"hljs-keyword\">DESC<\/span>, OrderId <span class=\"hljs-keyword\">DESC<\/span>, CustomerId)\r\nINCLUDE\r\n(\r\n    TotalAmount,\r\n    Status\r\n);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0647\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0647\u0627\u06cc\u06cc\u060c \u062e\u0648\u0627\u0646\u062f\u0646 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u0645\u062d\u062f\u0648\u062f \u0648 \u0627\u062c\u0631\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631\u060c \u0642\u0627\u0628\u0644\u06cc\u062a \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u0686\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u062a\u06cc\u062c\u0647 \u0645\u0639\u06a9\u0648\u0633 \u062f\u0627\u0631\u0646\u062f\u061f<\/h2>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u062a\u0648\u0646<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0634\u062a\u0646 \u0631\u0627 \u06a9\u0646\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0641\u0636\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0645\u0635\u0631\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0627\u0626\u0645\u06cc \u0627\u0632 <code>NOLOCK<\/code><\/h3>\n<pre><code class=\"hljs\"><span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-operator\">*<\/span>\r\n<span class=\"hljs-keyword\">FROM<\/span> Sales.Orders <span class=\"hljs-keyword\">WITH<\/span> (NOLOCK);\r\n<\/code><\/pre>\n<p dir=\"rtl\" lang=\"fa\"><code>NOLOCK<\/code> \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a Dirty Read\u060c \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u06cc\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0646\u0627\u067e\u0627\u06cc\u062f\u0627\u0631 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627\u0647 \u062d\u0644 \u0639\u0645\u0648\u0645\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 Blocking \u0646\u06cc\u0633\u062a.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u06cc \u062f\u0644\u06cc\u0644 \u0627\u0632 <code>OPTION (RECOMPILE)<\/code><\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631\u060c \u0628\u0627\u0632\u0633\u0627\u0632\u06cc Plan \u062f\u0631 \u0647\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f CPU \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0646\u062a\u0642\u0627\u0644 \u0647\u0645\u0647 Query\u0647\u0627 \u0628\u0647 Stored Procedure<\/h3>\n<p dir=\"rtl\" lang=\"fa\">Stored Procedure \u0645\u0641\u06cc\u062f \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0627\u06af\u0631 \u0645\u0646\u0637\u0642 Query\u060c \u0627\u06cc\u0646\u062f\u06a9\u0633 \u06cc\u0627 \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u0646\u0627\u062f\u0631\u0633\u062a \u0628\u0627\u0634\u062f\u060c \u0635\u0631\u0641\u0627\u064b \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u06a9\u062f \u062f\u0631 Stored Procedure \u0645\u0634\u06a9\u0644 \u0631\u0627 \u062d\u0644 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3 dir=\"rtl\" lang=\"fa\">\u0627\u0641\u0632\u0627\u06cc\u0634 \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0628\u062f\u0648\u0646 \u0627\u0635\u0644\u0627\u062d Query<\/h3>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u0641\u0632\u0627\u06cc\u0634 RAM \u06cc\u0627 CPU \u06af\u0627\u0647\u06cc \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 Query \u062f\u0627\u0631\u0627\u06cc \u0627\u0633\u06a9\u0646\u060c Sort \u06cc\u0627 Blocking \u0647\u0645\u0686\u0646\u0627\u0646 \u062f\u0631 \u062d\u062c\u0645 \u0628\u0627\u0644\u0627\u062a\u0631 \u0645\u0634\u06a9\u0644 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<h2 dir=\"rtl\" lang=\"fa\">\u0686\u06a9 \u0644\u06cc\u0633\u062a \u0646\u0647\u0627\u06cc\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u062f\u0631 SQL Server<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u067e\u06cc\u0634 \u0627\u0632 \u0627\u0646\u062a\u0634\u0627\u0631 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<ul dir=\"rtl\" lang=\"fa\">\n<li>Execution Plan \u0648\u0627\u0642\u0639\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>Logical Read \u0642\u0628\u0644 \u0648 \u0628\u0639\u062f \u0645\u0642\u0627\u06cc\u0633\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>\u0632\u0645\u0627\u0646 CPU \u0648 \u0632\u0645\u0627\u0646 \u0633\u067e\u0631\u06cc \u0634\u062f\u0647 \u062b\u0628\u062a \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>Query \u0627\u0632 <code>SELECT *<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li>\u0631\u0648\u06cc \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u062a\u0627\u0628\u0639 \u0627\u062c\u0631\u0627 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li>\u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0627 \u0646\u0648\u0639 \u0633\u062a\u0648\u0646 \u06cc\u06a9\u0633\u0627\u0646 \u0627\u0633\u062a.<\/li>\n<li>\u0627\u06cc\u0646\u062f\u06a9\u0633 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 \u0627\u0644\u06af\u0648\u06cc \u0648\u0627\u0642\u0639\u06cc Query \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>Key Lookup \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062d\u0630\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>Pagination \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0627\u062a \u0628\u0632\u0631\u06af \u0628\u0627 Keyset \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li>\u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627 \u06a9\u0648\u062a\u0627\u0647 \u0647\u0633\u062a\u0646\u062f.<\/li>\n<li>Blocking \u0648 Deadlock \u0628\u0631\u0631\u0633\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f.<\/li>\n<li>Statistics \u0648 Query Store \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f.<\/li>\n<li>Query \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u06a9\u0645 \u062d\u062c\u0645 \u0648 \u067e\u0631\u062d\u062c\u0645 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>\u062a\u0623\u062b\u06cc\u0631 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u062c\u062f\u06cc\u062f \u0628\u0631 INSERT \u0648 UPDATE \u0628\u0631\u0631\u0633\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<h2 dir=\"rtl\" lang=\"fa\">\u062c\u0645\u0639 \u0628\u0646\u062f\u06cc<\/h2>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u060c \u0628\u0627 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u0633\u0627\u062f\u0647 \u06cc\u0627 \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u0646\u062c\u0627\u0645 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 \u0647\u0632\u06cc\u0646\u0647 \u0648\u0627\u0642\u0639\u06cc Query \u0631\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u06a9\u0631\u062f\u060c \u0633\u067e\u0633 Execution Plan\u060c \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u060c \u0645\u062f\u062a \u062a\u0631\u0627\u06a9\u0646\u0634 \u0648 \u0631\u0641\u062a\u0627\u0631 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u062f\u0631 \u0639\u0645\u0644\u060c \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u0646\u062a\u06cc\u062c\u0647 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0628\u0647 \u062f\u0633\u062a \u0645\u06cc\u200c\u0622\u06cc\u062f:<\/p>\n<ol dir=\"rtl\" lang=\"fa\">\n<li>\u062d\u0630\u0641 Scan\u0647\u0627\u06cc \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc<\/li>\n<li>\u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 Query<\/li>\n<li>\u062d\u0630\u0641 Key Lookup\u0647\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631<\/li>\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Keyset Pagination<\/li>\n<li>\u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 Parameter Sniffing \u062f\u0631 Query\u0647\u0627\u06cc \u062d\u0633\u0627\u0633<\/li>\n<li>\u06a9\u0648\u062a\u0627\u0647 \u06a9\u0631\u062f\u0646 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627<\/li>\n<li>\u0628\u0631\u0631\u0633\u06cc Blocking \u0648 Deadlock<\/li>\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0633\u062a\u0645\u0631 \u0627\u0632 Query Store \u0648 \u0622\u0645\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0627\u062c\u0631\u0627<\/li>\n<\/ol>\n<p dir=\"rtl\" lang=\"fa\">\u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647 \u0646\u06a9\u0627\u062a \u062a\u06a9\u0645\u06cc\u0644\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u0637\u0631\u0627\u062d\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u060c <code>tempdb<\/code> \u0648 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u0645\u0642\u0627\u0644\u0647 <a href=\"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%af%db%8c%d8%aa%d8%a7%d8%a8%db%8c%d8%b3%d8%9b-%d8%ac%d8%a7%db%8c%db%8c-%da%a9%d9%87-%db%b8%db%b0%d9%aa-%d8%b3%d8%b1%d8%b9%d8%aa-%d8%b3%d8%a7\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u061b \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06f8\u06f0\u066a \u0633\u0631\u0639\u062a \u0633\u0627\u06cc\u062a \u0634\u0645\u0627 \u062f\u0631 \u0622\u0646 \u0646\u0647\u0641\u062a\u0647 \u0627\u0633\u062a<\/a> \u0631\u0627 \u0646\u06cc\u0632 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n<p dir=\"rtl\" lang=\"fa\">\u0627\u06af\u0631 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0628\u0627 Query\u0647\u0627\u06cc \u06a9\u0646\u062f\u060c \u0642\u0641\u0644 \u0634\u062f\u0646 \u062c\u062f\u0627\u0648\u0644 \u06cc\u0627 \u0627\u0641\u062a \u0639\u0645\u0644\u06a9\u0631\u062f SQL Server \u0631\u0648\u0628\u0647 \u0631\u0648 \u0647\u0633\u062a\u06cc\u062f\u060c \u0628\u0631\u0627\u06cc <a href=\"https:\/\/tarahanenovin.ir\/site\/contact\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u0645\u0634\u0627\u0648\u0631\u0647 \u0648 \u0628\u0631\u0631\u0633\u06cc \u0641\u0646\u06cc \u067e\u0631\u0648\u0698\u0647 \u0628\u0627 \u0637\u0631\u0627\u062d\u0627\u0646 \u0646\u0648\u06cc\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u060c \u06a9\u0646\u062f\u06cc SQL Server \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0641\u0642\u0637 \u0628\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0648\u062f\u0646 Query \u0645\u0631\u0628\u0648\u0637 \u0646\u06cc\u0633\u062a. \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0646\u0627\u0645\u0646\u0627\u0633\u0628\u060c \u0642\u0641\u0644 \u0634\u062f\u0646 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u060c \u0627\u062c\u0631\u0627\u06cc \u0645\u06a9\u0631\u0631 Query\u060c \u0628\u0631\u0622\u0648\u0631\u062f \u0627\u0634\u062a\u0628\u0627\u0647 \u062a\u0639\u062f\u0627\u062f \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0648 \u0637\u0631\u0627\u062d\u06cc \u0646\u0627\u062f\u0631\u0633\u062a \u062a\u0631\u0627\u06a9\u0646\u0634 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0632\u0645\u0627\u0646 \u067e\u0627\u0633\u062e \u0631\u0627 \u0627\u0632 \u0686\u0646\u062f \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647 \u0628\u0647 \u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0628\u0647 \u062c\u0627\u06cc \u062a\u0648\u0635\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u060c \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0639\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0648 \u0627\u0635\u0644\u0627\u062d Query\u0647\u0627\u06cc \u06a9\u0646\u062f \u062f\u0631 SQL Server \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0642\u0628\u0644 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 Query\u060c \u0645\u0634\u06a9\u0644 \u0631\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f \u0627\u0648\u0644\u06cc\u0646 \u0627\u0634\u062a\u0628\u0627\u0647 \u062f\u0631 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc SQL Server \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u062f\u0648\u0646 \u0645\u0634\u0627\u0647\u062f\u0647 Execution Plan \u06cc\u0627 \u0622\u0645\u0627\u0631 \u0627\u062c\u0631\u0627\u06cc Query\u060c \u0634\u0631\u0648\u0639 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u06a9\u0646\u06cc\u0645. \u062f\u0648 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f: SET STATISTICS IO ON; SET STATISTICS TIME ON; &#8212; Query \u0645\u0648\u0631\u062f \u0646\u0638\u0631 SELECT * FROM Sales.Orders WHERE CustomerId = 1250; SET STATISTICS IO OFF; SET STATISTICS TIME OFF; \u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0647\u0645\u06cc \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0634\u0645\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f: \u062a\u0639\u062f\u0627\u062f Logical Read \u062a\u0639\u062f\u0627\u062f Physical Read \u0632\u0645\u0627\u0646 CPU \u0632\u0645\u0627\u0646 \u0633\u067e\u0631\u06cc \u0634\u062f\u0647 \u062a\u0639\u062f\u0627\u062f Scan \u0648 Seek \u0645\u0642\u062f\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062d\u0627\u0641\u0638\u0647 \u06cc\u0627 \u062f\u06cc\u0633\u06a9 \u062a\u0641\u0627\u0648\u062a Logical Read \u0648 Physical Read Logical Read \u062a\u0639\u062f\u0627\u062f \u0635\u0641\u062d\u0627\u062a \u06f8 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a\u06cc \u062e\u0648\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u0627\u0632 Buffer Pool \u0627\u0633\u062a. \u0645\u0642\u062f\u0627\u0631 \u0632\u06cc\u0627\u062f \u0622\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u0634\u0627\u0646\u0647 \u0627\u0633\u06a9\u0646 \u06af\u0633\u062a\u0631\u062f\u0647 \u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0646\u0627\u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a. Physical Read \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f SQL Server \u0645\u062c\u0628\u0648\u0631 \u0634\u062f\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0627\u0632 \u062f\u06cc\u0633\u06a9 \u0628\u062e\u0648\u0627\u0646\u062f. \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u060c Physical Read \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0639\u062b \u0631\u0642\u0627\u0628\u062a \u0634\u062f\u06cc\u062f \u0631\u0648\u06cc \u062f\u06cc\u0633\u06a9 \u0634\u0648\u062f. \u062f\u0631 SSMS\u060c \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 Execution Plan \u0648\u0627\u0642\u0639\u06cc \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f: Ctrl + M \u0633\u067e\u0633 Query \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u062f\u0631 Plan \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f: Table Scan Index Scan Key Lookup Sort \u067e\u0631\u0647\u0632\u06cc\u0646\u0647 Hash Match \u0647\u0634\u062f\u0627\u0631\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Implicit Conversion \u0627\u062e\u062a\u0644\u0627\u0641 \u0628\u06cc\u0646 Estimated Rows \u0648 Actual Rows \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0631\u0633\u0645\u06cc \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a\u060c \u067e\u0627\u06cc\u0634 \u0645\u062f\u0627\u0648\u0645 Query\u0647\u0627\u060c Execution Plan\u0647\u0627 \u0648 Runtime Statistics \u067e\u0627\u06cc\u0647 \u062a\u0635\u0645\u06cc\u0645 \u06af\u06cc\u0631\u06cc \u0635\u062d\u06cc\u062d \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a. \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0648 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc SQL Server \u062f\u0631 Microsoft Learn \u06f1. Query \u0631\u0627 \u0628\u0627 \u0641\u06cc\u0644\u062a\u0631 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f SQL Server \u0632\u0645\u0627\u0646\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0647 \u0634\u06a9\u0644 \u0645\u0624\u062b\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u06a9\u0647 \u0634\u0631\u0637 WHERE \u0631\u0648\u06cc \u062e\u0648\u062f \u0633\u062a\u0648\u0646 \u0642\u0627\u0628\u0644 \u062c\u0633\u062a\u062c\u0648 \u0628\u0627\u0634\u062f. Query \u0646\u0627\u0645\u0646\u0627\u0633\u0628 SELECT OrderId, TotalAmount FROM Sales.Orders WHERE YEAR(OrderDate) = 2026; \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u062a\u0627\u0628\u0639 YEAR \u0631\u0648\u06cc \u0633\u062a\u0648\u0646 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0648 SQL Server \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u062c\u0628\u0648\u0631 \u0634\u0648\u062f \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u062f. Query \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647 SELECT OrderId, TotalAmount FROM Sales.Orders WHERE OrderDate &gt;= &#8216;20260101&#8217; AND OrderDate &lt; &#8216;20270101&#8217;; \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0647 SQL Server \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062d\u062f\u0648\u062f\u0647 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u062f. \u0686\u0646\u062f \u0646\u0645\u0648\u0646\u0647 \u0631\u0627\u06cc\u062c \u062f\u06cc\u06af\u0631 \u0646\u0627\u0645\u0646\u0627\u0633\u0628 WHERE CONVERT(date, CreatedAt) = &#8216;2026-08-20&#8217; \u0645\u0646\u0627\u0633\u0628 WHERE CreatedAt &gt;= &#8216;20260820&#8217; AND CreatedAt &lt; &#8216;20260821&#8217; \u0646\u0627\u0645\u0646\u0627\u0633\u0628 WHERE ISNULL(Status, 0) = 1 \u0645\u0646\u0627\u0633\u0628 WHERE Status = 1 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632\u060c \u0645\u0642\u062f\u0627\u0631 NULL \u0631\u0627 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f: WHERE Status = 1 OR Status IS NULL; \u06f2. \u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f Query \u0627\u0635\u0644\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0633\u0641\u0627\u0631\u0634\u200c\u0647\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a: SELECT OrderId, CustomerId, TotalAmount, CreatedAt FROM Sales.Orders WHERE CustomerId = @CustomerId AND Status = @Status AND CreatedAt &gt;= @FromDate AND CreatedAt &lt; @ToDate ORDER BY CreatedAt DESC; \u06cc\u06a9 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0646\u0627\u0633\u0628 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0628\u0627\u0634\u062f: CREATE INDEX IX_Orders_Customer_Status_CreatedAt ON Sales.Orders ( CustomerId, Status, CreatedAt DESC ) INCLUDE ( OrderId, TotalAmount ); \u0686\u0631\u0627 \u062a\u0631\u062a\u06cc\u0628 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0645\u0647\u0645 \u0627\u0633\u062a\u061f \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644: CustomerId \u0648 Status \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0628\u0631\u0627\u0628\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. CreatedAt \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u0628\u0627\u0632\u0647\u200c\u0627\u06cc \u0648 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc OrderId \u0648 TotalAmount \u062f\u0631 \u0628\u062e\u0634 INCLUDE \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0647\u200c\u0627\u0646\u062f \u062a\u0627 SQL Server \u0628\u0631\u0627\u06cc \u062a\u06a9\u0645\u06cc\u0644 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0647 \u062c\u062f\u0648\u0644 \u0627\u0635\u0644\u06cc \u0645\u0631\u0627\u062c\u0639\u0647 \u0646\u06a9\u0646\u062f. \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 WHERE \u0648 JOIN \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06a9\u0627\u0646\u062f\u06cc\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0628\u062e\u0634 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0647\u0633\u062a\u0646\u062f. \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0641\u0642\u0637 \u062f\u0631 SELECT \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f\u060c \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc INCLUDE \u0645\u0646\u0627\u0633\u0628\u200c\u062a\u0631\u0646\u062f. \u06f3. \u0645\u0634\u06a9\u0644 Key Lookup \u0631\u0627 \u0628\u0631\u0637\u0631\u0641 \u06a9\u0646\u06cc\u062f \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: CREATE INDEX IX_Orders_CustomerId ON Sales.Orders(CustomerId); \u0648 Query \u0632\u06cc\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f: SELECT OrderId, CustomerId, TotalAmount, CreatedAt, Status FROM Sales.Orders WHERE CustomerId = @CustomerId; SQL Server \u0627\u0628\u062a\u062f\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0633\u0627\u06cc\u0631 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0628\u0647 \u062c\u062f\u0648\u0644 \u0627\u0635\u0644\u06cc \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u062f. \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u062f\u0631 Execution Plan \u0628\u0627 \u0639\u0646\u0648\u0627\u0646 Key Lookup \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06af\u0631 Query \u067e\u0631\u062a\u06a9\u0631\u0627\u0631 \u0627\u0633\u062a\u060c \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0627 \u067e\u0648\u0634\u0634\u06cc \u06a9\u0646\u06cc\u062f: CREATE INDEX IX_Orders_CustomerId_Covering ON Sales.Orders(CustomerId) INCLUDE ( OrderId, TotalAmount, CreatedAt, Status ); \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc Covering Index \u0646\u0633\u0627\u0632\u06cc\u0645\u061f Covering Index \u0647\u0645\u06cc\u0634\u0647 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0627\u0647 \u062d\u0644 \u0646\u06cc\u0633\u062a. \u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0632\u0631\u06af \u0628\u0627\u0639\u062b \u0627\u0641\u0632\u0627\u06cc\u0634 \u0647\u0632\u06cc\u0646\u0647 \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u06cc\u200c\u0634\u0648\u062f: INSERT UPDATE DELETE \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0635\u0631\u0641 \u0641\u0636\u0627\u06cc \u062f\u06cc\u0633\u06a9 \u0645\u0635\u0631\u0641 \u062d\u0627\u0641\u0638\u0647 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631 \u0648 \u062d\u0633\u0627\u0633 \u0628\u0647 \u0632\u0645\u0627\u0646 \u067e\u0627\u0633\u062e\u060c \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u06f4. \u0627\u0632 SELECT * \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u0641\u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u06cc\u062f Query \u0646\u0627\u0645\u0646\u0627\u0633\u0628 SELECT * FROM Sales.Orders WHERE CustomerId = @CustomerId; \u0627\u06cc\u0646 Query \u0628\u0647 \u062a\u0645\u0627\u0645 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0648\u0627\u0628\u0633\u062a\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647: \u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0632 \u062f\u06cc\u0633\u06a9 \u062e\u0648\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Covering Index \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f. \u0627\u0646\u062a\u0642\u0627\u0644 \u062f\u0627\u062f\u0647 \u0628\u06cc\u0646 SQL Server \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062a\u063a\u06cc\u06cc\u0631 \u0633\u0627\u062e\u062a\u0627\u0631 \u062c\u062f\u0648\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0631\u0641\u062a\u0627\u0631 Query \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f. Query \u0628\u0647\u062a\u0631 SELECT OrderId, CustomerId, Status, TotalAmount, CreatedAt FROM Sales.Orders WHERE CustomerId = @CustomerId; \u062f\u0631 API\u0647\u0627 \u0648 \u0635\u0641\u062d\u0627\u062a \u0644\u06cc\u0633\u062a\u060c \u0641\u0642\u0637 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0648\u0627\u0642\u0639\u0627\u064b \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u06f5. Pagination \u0631\u0627 \u0628\u0627 Keyset \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u062f\u0631 \u062c\u062f\u0648\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 OFFSET \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0627\u062a \u0627\u0646\u062a\u0647\u0627\u06cc\u06cc \u0628\u0633\u06cc\u0627\u0631 \u067e\u0631\u0647\u0632\u06cc\u0646\u0647 \u0627\u0633\u062a. \u0631\u0648\u0634 \u067e\u0631\u0647\u0632\u06cc\u0646\u0647 SELECT OrderId, CreatedAt, TotalAmount FROM Sales.Orders ORDER BY CreatedAt DESC, OrderId DESC OFFSET 500000 ROWS FETCH NEXT 50 ROWS ONLY; SQL Server \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0628\u0627\u06cc\u062f \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f\u06cc \u0631\u06a9\u0648\u0631\u062f \u0631\u0627 \u0645\u0631\u062a\u0628 \u0648 \u0631\u062f \u06a9\u0646\u062f. \u0631\u0648\u0634 Keyset Pagination \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634\u060c \u0622\u062e\u0631\u06cc\u0646 \u0631\u06a9\u0648\u0631\u062f \u0635\u0641\u062d\u0647 \u0642\u0628\u0644\u06cc \u0631\u0627 \u0628\u0647 Query \u0628\u0639\u062f\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645: DECLARE @LastCreatedAt datetime2 = &#8216;2026-08-15 12:30:00&#8242;; DECLARE @LastOrderId bigint = 987654; SELECT TOP (50) OrderId, CreatedAt, TotalAmount FROM Sales.Orders WHERE CreatedAt &lt; @LastCreatedAt OR ( CreatedAt = @LastCreatedAt AND OrderId &lt; @LastOrderId ) ORDER BY CreatedAt DESC, OrderId DESC; \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 Query \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0632\u06cc\u0631 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a: CREATE INDEX IX_Orders_CreatedAt_OrderId ON Sales.Orders(CreatedAt DESC, OrderId DESC) INCLUDE ( TotalAmount ); \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u062c\u062f\u0648\u0644\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u060c \u062a\u0631\u0627\u06a9\u0646\u0634 \u0645\u0627\u0644\u06cc\u060c \u06af\u0632\u0627\u0631\u0634 \u0631\u062e\u062f\u0627\u062f\u0647\u0627 \u0648 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u062d\u062c\u06cc\u0645 \u0639\u0645\u0644\u06a9\u0631\u062f \u067e\u0627\u06cc\u062f\u0627\u0631\u062a\u0631\u06cc \u062f\u0627\u0631\u062f. \u06f6. \u0645\u0631\u0627\u0642\u0628 Parameter Sniffing \u0628\u0627\u0634\u06cc\u062f SQL Server \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0646\u06af\u0627\u0645 \u0627\u0648\u0644\u06cc\u0646 \u0627\u062c\u0631\u0627\u06cc Stored Procedure\u060c \u0645\u0642\u062f\u0627\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0622\u0646 Execution Plan \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u0627\u06af\u0631 \u062a\u0648\u0632\u06cc\u0639 \u062f\u0627\u062f\u0647 \u06cc\u06a9\u0646\u0648\u0627\u062e\u062a \u0646\u0628\u0627\u0634\u062f\u060c \u06cc\u06a9 Plan \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u0648 \u0628\u0631\u0627\u06cc \u0645\u0642\u062f\u0627\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0636\u0639\u06cc\u0641 \u0628\u0627\u0634\u062f. \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0641\u0642\u0637 \u06f1\u06f0 \u0633\u0641\u0627\u0631\u0634 \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0645\u0634\u062a\u0631\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0686\u0646\u062f \u0645\u06cc\u0644\u06cc\u0648\u0646 \u0633\u0641\u0627\u0631\u0634 \u062b\u0628\u062a \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a: CREATE OR ALTER PROCEDURE Sales.GetCustomerOrders @CustomerId bigint AS BEGIN SET NOCOUNT ON; SELECT OrderId, CreatedAt, TotalAmount, Status FROM Sales.Orders WHERE CustomerId = @CustomerId; END; \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a Plan \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u06a9\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc Query \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0628\u0632\u0631\u06af \u0645\u0646\u0627\u0633\u0628 \u0646\u0628\u0627\u0634\u062f. \u0631\u0627\u0647 \u062d\u0644 \u0627\u0648\u0644: \u0628\u0627\u0632\u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062f\u0631 \u0647\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 SELECT OrderId, CreatedAt, TotalAmount, Status FROM Sales.Orders WHERE CustomerId = @CustomerId OPTION (RECOMPILE); \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc\u06cc \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a \u06a9\u0647: \u062a\u0639\u062f\u0627\u062f \u0627\u062c\u0631\u0627\u06cc \u0622\u0646\u0647\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f \u0646\u06cc\u0633\u062a. \u0627\u062e\u062a\u0644\u0627\u0641 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0628\u06cc\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0632\u06cc\u0627\u062f \u0627\u0633\u062a. \u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a Plan \u0646\u0633\u0628\u062a \u0628\u0647 \u0647\u0632\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u06a9\u0645\u062a\u0631 \u0627\u0633\u062a. \u0631\u0627\u0647 \u062d\u0644 \u062f\u0648\u0645: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 OPTIMIZE FOR UNKNOWN SELECT OrderId, CreatedAt, TotalAmount, Status FROM Sales.Orders WHERE CustomerId = @CustomerId OPTION (OPTIMIZE FOR UNKNOWN); \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634 SQL Server \u0627\u0632 \u0645\u0642\u062f\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a Plan \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0631\u0622\u0648\u0631\u062f \u0639\u0645\u0648\u0645\u06cc\u200c\u062a\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0631\u0627\u0647 \u062d\u0644 \u0633\u0648\u0645: \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u0644\u06cc DECLARE @LocalCustomerId bigint = @CustomerId; SELECT OrderId, CreatedAt, TotalAmount, Status FROM Sales.Orders WHERE CustomerId = @LocalCustomerId; \u0627\u06cc\u0646 \u0631\u0648\u0634 \u06af\u0627\u0647\u06cc \u0645\u0634\u06a9\u0644 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0627\u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631\u0622\u0648\u0631\u062f SQL Server \u0631\u0627 \u0636\u0639\u06cc\u0641 \u06a9\u0646\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0627\u06cc\u062f \u0628\u0627 Execution Plan \u0648 \u0622\u0645\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u0648\u062f. \u06f7. Implicit Conversion \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f \u062a\u0628\u062f\u06cc\u0644 \u0636\u0645\u0646\u06cc \u0646\u0648\u0639 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0627\u0646\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0635\u062d\u06cc\u062d \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0634\u0648\u062f. \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0646\u0648\u0639 \u0633\u062a\u0648\u0646 CustomerId \u0627\u0632 \u0646\u0648\u0639 bigint \u0627\u0633\u062a: CREATE TABLE Sales.Orders ( OrderId bigint NOT NULL, CustomerId bigint NOT NULL ); \u0627\u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a nvarchar \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f: WHERE CustomerId = N&#8217;1250&#8242; \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a SQL Server \u0645\u062c\u0628\u0648\u0631 \u0628\u0647 \u062a\u0628\u062f\u06cc\u0644 \u0646\u0648\u0639 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f. \u062f\u0631 Execution Plan\u060c \u0647\u0634\u062f\u0627\u0631 CONVERT_IMPLICIT \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u0631\u0648\u0634 \u0635\u062d\u06cc\u062d \u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 Stored Procedure \u0628\u0627\u06cc\u062f \u0628\u0627 \u0646\u0648\u0639 \u0633\u062a\u0648\u0646 \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0627\u0634\u062f: CREATE OR ALTER PROCEDURE Sales.GetOrders @CustomerId bigint AS BEGIN SET NOCOUNT ON; SELECT OrderId, CreatedAt, TotalAmount FROM Sales.Orders WHERE CustomerId = @CustomerId; END; \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc .NET \u0646\u06cc\u0632 \u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0631\u0627 \u0635\u062d\u06cc\u062d \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f: command.Parameters.Add(&#8220;@CustomerId&#8221;, SqlDbType.BigInt).Value = customerId; \u06f8. JOIN \u0631\u0627 \u0628\u0627 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u062f\u0631\u0633\u062a \u0648 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0646\u0627\u0633\u0628 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f Query \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0633\u0641\u0627\u0631\u0634\u200c\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f: SELECT o.OrderId, o.CreatedAt, c.CustomerName, o.TotalAmount FROM Sales.Orders AS o INNER JOIN Sales.Customers AS c ON c.CustomerId = o.CustomerId WHERE o.Status = 1 AND o.CreatedAt &gt;= @FromDate; \u0627\u06cc\u0646\u062f\u06a9\u0633\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc: CREATE INDEX IX_Orders_Status_CreatedAt_CustomerId ON Sales.Orders(Status, CreatedAt, CustomerId) INCLUDE ( OrderId, TotalAmount ); \u0648 \u062f\u0631 \u062c\u062f\u0648\u0644 \u0645\u0634\u062a\u0631\u06cc: CREATE UNIQUE INDEX UX_Customers_CustomerId ON Sales.Customers(CustomerId) INCLUDE ( CustomerName ); \u0627\u0632 JOIN \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f \u0627\u06af\u0631 \u0647\u06cc\u0686 \u0633\u062a\u0648\u0646\u06cc \u0627\u0632 \u062c\u062f\u0648\u0644 \u0645\u0634\u062a\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u06cc\u0646 JOIN \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f: SELECT o.OrderId, o.TotalAmount FROM Sales.Orders AS o INNER JOIN Sales.Customers AS c ON c.CustomerId = o.CustomerId WHERE o.Status = 1; \u0646\u0633\u062e\u0647 \u0633\u0627\u062f\u0647\u200c\u062a\u0631: SELECT OrderId, TotalAmount FROM Sales.Orders WHERE Status = 1; \u0647\u0631 JOIN \u0627\u0636\u0627\u0641\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0647\u0632\u06cc\u0646\u0647 CPU\u060c \u062d\u0627\u0641\u0638\u0647 \u0648 I\/O \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f. \u06f9. \u0628\u0647 \u062c\u0627\u06cc IN \u0628\u0632\u0631\u06af \u0627\u0632 \u0631\u0648\u0634 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0631\u0648\u0634 \u0645\u0634\u06a9\u0644 \u0633\u0627\u0632 SELECT OrderId, TotalAmount FROM Sales.Orders WHERE OrderId IN ( 100001, 100002, 100003, 100004 ); \u0628\u0631\u0627\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0645 \u0634\u0646\u0627\u0633\u0647 \u0645\u0634\u06a9\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648 \u0641\u0647\u0631\u0633\u062a\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0627\u0632 Table-Valued Parameter \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f. \u062a\u0639\u0631\u06cc\u0641 \u0646\u0648\u0639 \u062c\u062f\u0648\u0644\u06cc CREATE TYPE Sales.OrderIdList AS TABLE ( OrderId bigint NOT NULL PRIMARY KEY ); Stored Procedure CREATE OR ALTER PROCEDURE Sales.GetOrdersByIds @OrderIds Sales.OrderIdList READONLY AS BEGIN SET NOCOUNT ON; SELECT o.OrderId, o.CustomerId, o.TotalAmount, o.Status FROM Sales.Orders AS o INNER JOIN @OrderIds AS ids ON ids.OrderId = o.OrderId; END; \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0646\u0633\u0628\u062a \u0628\u0647 \u0633\u0627\u062e\u062a\u0646 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc \u0648 Dynamic SQL \u0642\u0627\u0628\u0644 \u06a9\u0646\u062a\u0631\u0644\u200c\u062a\u0631 \u0648 \u0627\u0645\u0646\u200c\u062a\u0631 \u0627\u0633\u062a. \u06f1\u06f0. LIKE \u0631\u0627 \u0628\u0631\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u062a\u0646\u06cc \u062f\u0631\u0633\u062a \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f Query \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 WHERE CustomerName LIKE @Search + N&#8217;%&#8217; Query \u067e\u0631\u0647\u0632\u06cc\u0646\u0647 WHERE CustomerName LIKE N&#8217;%&#8217; + @Search + N&#8217;%&#8217; \u062f\u0631 \u062d\u0627\u0644\u062a \u062f\u0648\u0645\u060c SQL Server \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0639\u0645\u0648\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 \u0627\u0628\u062a\u062f\u0627\u06cc \u0639\u0628\u0627\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0648\u0627\u0642\u0639\u06cc \u062f\u0631 \u0645\u062a\u0646\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c Full-Text Search \u06af\u0632\u06cc\u0646\u0647 \u0645\u0646\u0627\u0633\u0628\u200c\u062a\u0631\u06cc \u0627\u0633\u062a: CREATE FULLTEXT CATALOG CustomerCatalog AS DEFAULT; \u0633\u067e\u0633 \u0631\u0648\u06cc \u0633\u062a\u0648\u0646 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 Full-Text Index \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 Query \u0631\u0627 \u0628\u0627 CONTAINS \u06cc\u0627 FREETEXT \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f: SELECT CustomerId, CustomerName FROM Sales.Customers WHERE CONTAINS(CustomerName, @SearchTerm); \u06f1\u06f1. \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627 \u0631\u0627 \u06a9\u0648\u062a\u0627\u0647 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u060c \u062a\u0631\u0627\u06a9\u0646\u0634 \u0637\u0648\u0644\u0627\u0646\u06cc \u0641\u0642\u0637 \u06cc\u06a9 \u0645\u0634\u06a9\u0644 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0646\u06cc\u0633\u062a\u061b \u0628\u0644\u06a9\u0647 \u0628\u0627\u0639\u062b Blocking \u0648 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0632\u0645\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u0633\u0627\u06cc\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0644\u06af\u0648\u06cc \u0646\u0627\u0645\u0646\u0627\u0633\u0628 BEGIN TRANSACTION; SELECT * FROM Sales.Orders WHERE OrderId = @OrderId; &#8212; \u067e\u0631\u062f\u0627\u0632\u0634 \u0637\u0648\u0644\u0627\u0646\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 &#8212; \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062e\u0627\u0631\u062c\u06cc &#8212; \u0645\u062d\u0627\u0633\u0628\u0647 \u0633\u0646\u06af\u06cc\u0646 UPDATE Sales.Orders SET Status = 2 WHERE OrderId = @OrderId; COMMIT TRANSACTION; \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u0635\u0644\u0647\u060c \u0642\u0641\u0644\u200c\u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u062d\u0641\u0638 \u0634\u0648\u0646\u062f. \u0627\u0644\u06af\u0648\u06cc \u0628\u0647\u062a\u0631 \u0627\u0628\u062a\u062f\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0644\u0627\u0632\u0645 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f\u060c \u067e\u0631\u062f\u0627\u0632\u0634\u200c\u0647\u0627\u06cc \u062e\u0627\u0631\u062c \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u0648 \u0641\u0642\u0637 \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u0631 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f: SELECT OrderId, Status, TotalAmount FROM Sales.Orders WHERE OrderId = @OrderId; \u0633\u067e\u0633: SET XACT_ABORT ON; BEGIN TRY BEGIN TRANSACTION; UPDATE Sales.Orders SET Status = 2, UpdatedAt = SYSUTCDATETIME() WHERE OrderId = @OrderId AND Status = 1; IF @@ROWCOUNT = 0 THROW 50001, &#8216;Order is not available for update.&#8217;, 1; INSERT INTO Sales.OrderStatusHistory ( OrderId, OldStatus, NewStatus, CreatedAt ) VALUES ( @OrderId, 1, 2, SYSUTCDATETIME() ); COMMIT TRANSACTION; END TRY BEGIN CATCH IF XACT_STATE() &lt;&gt; 0 ROLLBACK TRANSACTION; THROW; END CATCH; \u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0634\u0631\u0637 \u0648\u0636\u0639\u06cc\u062a \u062f\u0631 \u062f\u0633\u062a\u0648\u0631 UPDATE \u0646\u0642\u0634 \u06a9\u0646\u062a\u0631\u0644 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u062f\u0627\u0631\u062f: WHERE OrderId = @OrderId AND Status = 1 \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u0627\u06af\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u06cc\u06af\u0631\u06cc \u0642\u0628\u0644\u0627\u064b \u0648\u0636\u0639\u06cc\u062a \u0633\u0641\u0627\u0631\u0634 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0639\u0645\u0644\u06cc\u0627\u062a \u0641\u0639\u0644\u06cc \u0628\u062f\u0648\u0646 \u0628\u0631\u0631\u0633\u06cc \u0627\u0636\u0627\u0641\u06cc \u0634\u06a9\u0633\u062a \u0645\u06cc\u200c\u062e\u0648\u0631\u062f. \u06f1\u06f2. Blocking \u0648 Deadlock \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u0646\u062a\u0638\u0627\u0631: SELECT r.session_id, r.status, r.command, r.wait_type, r.wait_time, r.blocking_session_id, r.cpu_time, r.logical_reads, t.text AS SqlText FROM sys.dm_exec_requests AS r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t WHERE r.session_id &lt;&gt; @@SPID ORDER BY r.wait_time DESC; \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Session\u0647\u0627\u06cc \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0647: SELECT session_id, blocking_session_id, wait_type, wait_time, wait_resource FROM sys.dm_exec_requests WHERE blocking_session_id &lt;&gt; 0; \u0639\u0644\u062a\u200c\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c Blocking \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc \u0646\u0628\u0648\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0648\u06cc \u0634\u0631\u0637 UPDATE \u06cc\u0627 DELETE \u0627\u0633\u06a9\u0646 \u06af\u0633\u062a\u0631\u062f\u0647 \u062c\u062f\u0648\u0644 \u0627\u062c\u0631\u0627\u06cc \u06af\u0632\u0627\u0631\u0634 \u0633\u0646\u06af\u06cc\u0646 \u0631\u0648\u06cc \u062c\u062f\u0627\u0648\u0644 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0645\u062a\u0641\u0627\u0648\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u062f\u0627\u0648\u0644 \u062f\u0631 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0633\u062a\u0647\u200c\u0627\u06cc \u062f\u0631 \u0633\u0627\u0639\u0627\u062a \u0634\u0644\u0648\u063a \u0627\u0644\u06af\u0648\u06cc \u06a9\u0627\u0647\u0634 Deadlock \u062f\u0631 \u062a\u0645\u0627\u0645 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u062a\u0631\u062a\u06cc\u0628 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062c\u062f\u0627\u0648\u0644 \u0631\u0627 \u062b\u0627\u0628\u062a \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u06cc\u06a9 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0627\u0628\u062a\u062f\u0627 Customers \u0648 \u0633\u067e\u0633 Orders \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u062a\u0631\u0627\u06a9\u0646\u0634 \u062f\u06cc\u06af\u0631 \u0646\u0628\u0627\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 Orders \u0648 \u0628\u0639\u062f Customers \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0632\u0631\u06af \u0631\u0627 \u0628\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u200c\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f: WHILE 1 = 1 BEGIN DELETE TOP (1000) FROM Audit.Logs WHERE CreatedAt &lt; @BeforeDate; IF @@ROWCOUNT = 0 BREAK; END; \u06f1\u06f3. \u0633\u0637\u062d Isolation \u0631\u0627 \u0622\u06af\u0627\u0647\u0627\u0646\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u062f\u0631 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc OLTP\u060c \u062e\u0648\u0627\u0646\u062f\u0646\u200c\u0647\u0627\u06cc \u0637\u0648\u0644\u0627\u0646\u06cc \u0628\u0627 \u0646\u0648\u0634\u062a\u0646\u200c\u0647\u0627 \u062a\u062f\u0627\u062e\u0644 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0627\u0647\u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u0647\u0645\u060c \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 READ_COMMITTED_SNAPSHOT \u0627\u0633\u062a: ALTER DATABASE [SalesDb] SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE; \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u062e\u0648\u0627\u0646\u062f\u0646\u200c\u0647\u0627\u06cc \u0645\u0639\u0645\u0648\u0644\u06cc \u0627\u0632 Version Store \u062f\u0631 tempdb \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06a9\u0645\u062a\u0631 \u0645\u0646\u062a\u0638\u0631 \u0642\u0641\u0644\u200c\u0647\u0627\u06cc \u0646\u0648\u0634\u062a\u0627\u0631\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f. \u0627\u0645\u0627 \u067e\u06cc\u0634 \u0627\u0632 \u0641\u0639\u0627\u0644 \u0633\u0627\u0632\u06cc \u0628\u0627\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0628\u0631\u0631\u0633\u06cc \u0634\u0648\u062f: \u0641\u0636\u0627\u06cc \u06a9\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc tempdb \u062d\u062c\u0645 Update \u0648 Delete \u0645\u062f\u062a \u0627\u062c\u0631\u0627\u06cc \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627 \u0645\u0635\u0631\u0641 Version Store \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 \u0631\u0641\u062a\u0627\u0631 \u062c\u062f\u06cc\u062f \u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u0631\u0627\u06cc \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062b\u0628\u0627\u062a \u06a9\u0627\u0645\u0644 \u062f\u0627\u062f\u0647 \u062f\u0627\u0631\u0646\u062f\u060c \u0633\u0637\u062d Isolation \u0631\u0627 \u0628\u062f\u0648\u0646 \u0628\u0631\u0631\u0633\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0646\u062f\u0647\u06cc\u062f. \u06f1\u06f4. Statistics \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f \u0627\u06af\u0631 Statistics \u0642\u062f\u06cc\u0645\u06cc \u0628\u0627\u0634\u062f\u060c SQL Server \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062a\u0639\u062f\u0627\u062f \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0627\u0634\u062a\u0628\u0627\u0647 \u062a\u062e\u0645\u06cc\u0646 \u0628\u0632\u0646\u062f \u0648 Join \u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0646\u0627\u0645\u0646\u0627\u0633\u0628 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u062f. \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0633\u062a\u06cc: UPDATE STATISTICS Sales.Orders WITH FULLSCAN; \u0628\u0631\u0627\u06cc \u062c\u062f\u0648\u0644\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c FULLSCAN \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u067e\u0631\u0647\u0632\u06cc\u0646\u0647 \u0628\u0627\u0634\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0633\u0627\u0639\u0627\u062a \u0645\u0646\u0627\u0633\u0628 \u0648 \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u0645\u0634\u0627\u0647\u062f\u0647 \u0632\u0645\u0627\u0646 \u0622\u062e\u0631\u06cc\u0646 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc Statistics: SELECT OBJECT_SCHEMA_NAME(sp.object_id) AS SchemaName, OBJECT_NAME(sp.object_id) AS TableName, sp.stats_id, sp.last_updated, sp.rows, sp.rows_sampled, sp.modification_counter FROM sys.dm_db_stats_properties ( OBJECT_ID(N&#8217;Sales.Orders&#8217;), 1 ) AS sp; \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u0633\u0631\u0639\u062a \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0641\u0642\u0637 \u0641\u0639\u0627\u0644 \u0628\u0648\u062f\u0646 Auto Update Statistics \u06a9\u0627\u0641\u06cc \u0646\u06cc\u0633\u062a. \u0622\u0645\u0627\u0631 Query Store\u060c \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc Query \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0627\u062f\u0647 \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u06f1\u06f5. Query Store \u0631\u0627 \u0641\u0639\u0627\u0644 \u0648 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f Query Store \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Query\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0637\u0648\u0644 \u0632\u0645\u0627\u0646 \u06a9\u0646\u062f \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a. \u0641\u0639\u0627\u0644 \u0633\u0627\u0632\u06cc: ALTER DATABASE [SalesDb] SET QUERY_STORE = ON; \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Query\u0647\u0627\u06cc \u067e\u0631\u0647\u0632\u06cc\u0646\u0647: SELECT TOP (20) qt.query_sql_text, rs.execution_count, rs.avg_duration, rs.avg_cpu_time, rs.avg_logical_io_reads, rs.last_execution_time FROM sys.query_store_query_text AS qt INNER JOIN sys.query_store_query AS q ON q.query_text_id = qt.query_text_id INNER JOIN sys.query_store_plan AS p ON p.query_id = q.query_id INNER JOIN sys.query_store_runtime_stats AS rs ON rs.plan_id = p.plan_id ORDER BY rs.avg_duration DESC; \u0628\u0631\u0627\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f\u0646 Query\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639 \u0632\u0645\u0627\u0646 \u0631\u0627 \u0645\u0635\u0631\u0641 \u06a9\u0631\u062f\u0647\u200c\u0627\u0646\u062f: SELECT TOP (20) qt.query_sql_text, SUM(rs.count_executions) AS TotalExecutions, SUM(rs.avg_duration * rs.count_executions) AS TotalDuration FROM sys.query_store_query_text AS qt INNER JOIN sys.query_store_query AS q ON q.query_text_id = qt.query_text_id INNER JOIN sys.query_store_plan AS p ON p.query_id = q.query_id INNER JOIN sys.query_store_runtime_stats AS rs ON rs.plan_id = p.plan_id GROUP BY qt.query_sql_text ORDER BY TotalDuration DESC; \u06af\u0627\u0647\u06cc Query\u0627\u06cc \u06a9\u0647 \u0645\u06cc\u0627\u0646\u06af\u06cc\u0646 \u0632\u0645\u0627\u0646 \u06a9\u0645\u06cc \u062f\u0627\u0631\u062f\u060c \u0628\u0647 \u062f\u0644\u06cc\u0644 \u062a\u0639\u062f\u0627\u062f \u0627\u062c\u0631\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f\u060c \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u0641\u0634\u0627\u0631 \u0631\u0627 \u0628\u0647 SQL Server \u0648\u0627\u0631\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u06f1\u06f6. \u0628\u0631\u0627\u06cc \u0627\u0635\u0644\u0627\u062d Query \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0647\u0631 Query \u067e\u06cc\u0686\u06cc\u062f\u0647\u060c \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0634\u062e\u0635 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f: \u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644: \u0627\u062c\u0631\u0627\u06cc \u0641\u0639\u0644\u06cc \u0631\u0627 \u062b\u0628\u062a \u06a9\u0646\u06cc\u062f \u0632\u0645\u0627\u0646 \u0645\u062a\u0648\u0633\u0637 \u0632\u0645\u0627\u0646 \u0635\u062f\u06a9 \u06f9\u06f5 \u0648 \u06f9\u06f9 CPU Logical Read \u062a\u0639\u062f\u0627\u062f \u0627\u062c\u0631\u0627 \u062a\u0639\u062f\u0627\u062f Timeout Wait Type \u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645: Execution Plan \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0628\u0627\u0634\u06cc\u062f: Scan \u0631\u0648\u06cc \u062c\u062f\u0648\u0644 \u0628\u0632\u0631\u06af \u0627\u062e\u062a\u0644\u0627\u0641 Estimated Rows \u0648 Actual Rows Key Lookup \u062a\u06a9\u0631\u0627\u0631\u0634\u0648\u0646\u062f\u0647 Sort \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0646\u0627\u0633\u0628 Hash Join \u0646\u0627\u0634\u06cc \u0627\u0632 \u06a9\u0645\u0628\u0648\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u06cc\u0627 \u0628\u0631\u0622\u0648\u0631\u062f \u0627\u0634\u062a\u0628\u0627\u0647 Implicit Conversion Spill \u0628\u0647 tempdb \u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645: Query \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u06cc\u062f \u062d\u0630\u0641 SELECT * \u062d\u0630\u0641 \u062a\u0627\u0628\u0639 \u0627\u0632 \u0631\u0648\u06cc \u0633\u062a\u0648\u0646 \u0641\u06cc\u0644\u062a\u0631 \u0627\u0635\u0644\u0627\u062d Pagination \u062d\u0630\u0641 JOIN \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u0627\u0635\u0644\u0627\u062d \u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u06a9\u0627\u0647\u0634 \u062a\u0639\u062f\u0627\u062f \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645: \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u0622\u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0627 \u0627\u0644\u06af\u0648\u06cc \u0648\u0627\u0642\u0639\u06cc Query \u0647\u0645\u0627\u0647\u0646\u06af \u0627\u0633\u062a\u061f \u0622\u06cc\u0627 \u062a\u0631\u062a\u06cc\u0628 \u0633\u062a\u0648\u0646\u200c\u0647\u0627 \u0635\u062d\u06cc\u062d \u0627\u0633\u062a\u061f \u0622\u06cc\u0627 Query \u0646\u06cc\u0627\u0632 \u0628\u0647 INCLUDE \u062f\u0627\u0631\u062f\u061f \u0622\u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0645\u0634\u0627\u0628\u0647 \u0627\u0632 \u0642\u0628\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061f \u0647\u0632\u06cc\u0646\u0647 \u0627\u06cc\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0634\u062a\u0646 \u0686\u0642\u062f\u0631 \u0627\u0633\u062a\u061f \u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645: \u0632\u06cc\u0631 \u0628\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f Query \u0641\u0642\u0637 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0646\u0634\u0648\u062f. \u062d\u062c\u0645 \u062f\u0627\u062f\u0647\u060c \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0648 \u0632\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f. \u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0645\u0644 \u0628\u0631\u0631\u0633\u06cc \u06cc\u06a9 Query Query \u0627\u0648\u0644\u06cc\u0647 SELECT * FROM Sales.Orders WHERE CONVERT(date, CreatedAt) = @OrderDate AND CustomerId IN ( SELECT CustomerId FROM Sales.Customers WHERE IsActive = 1 ) ORDER BY CreatedAt DESC OFFSET @Offset ROWS FETCH NEXT @PageSize ROWS ONLY; \u0645\u0634\u06a9\u0644\u200c\u0647\u0627\u06cc \u0627\u06cc\u0646 Query: \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0627\u0628\u0639 \u0631\u0648\u06cc CreatedAt \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 SELECT * Pagination \u0628\u0627 OFFSET \u062f\u0631 \u0635\u0641\u062d\u0627\u062a \u0628\u0632\u0631\u06af \u0627\u062d\u062a\u0645\u0627\u0644 \u0627\u0633\u06a9\u0646 \u062c\u062f\u0648\u0644 Customers \u0646\u0627\u0645\u0634\u062e\u0635 \u0628\u0648\u062f\u0646 \u0627\u06cc\u0646\u062f\u06a9\u0633\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647 SELECT TOP (@PageSize) o.OrderId, o.CustomerId, o.CreatedAt, o.TotalAmount, o.Status FROM Sales.Orders AS o INNER JOIN Sales.Customers AS c ON c.CustomerId = o.CustomerId WHERE c.IsActive = 1 AND ( o.CreatedAt &lt; @LastCreatedAt OR ( o.CreatedAt = @LastCreatedAt AND o.OrderId &lt; @LastOrderId ) ) ORDER BY o.CreatedAt DESC, o.OrderId DESC; \u0627\u06cc\u0646\u062f\u06a9\u0633\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc: CREATE INDEX IX_Customers_IsActive_CustomerId ON Sales.Customers(IsActive, CustomerId); CREATE INDEX IX_Orders_CreatedAt_OrderId_CustomerId ON Sales.Orders(CreatedAt DESC, OrderId DESC, CustomerId) INCLUDE ( TotalAmount, Status ); \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0647\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0647\u0627\u06cc\u06cc\u060c \u062e\u0648\u0627\u0646\u062f\u0646 \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u0645\u062d\u062f\u0648\u062f \u0648 \u0627\u062c\u0631\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631\u060c \u0642\u0627\u0628\u0644\u06cc\u062a \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u062f. \u0686\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u062a\u06cc\u062c\u0647 \u0645\u0639\u06a9\u0648\u0633 \u062f\u0627\u0631\u0646\u062f\u061f \u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u062a\u0648\u0646 \u062a\u0639\u062f\u0627\u062f \u0632\u06cc\u0627\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0634\u062a\u0646 \u0631\u0627 \u06a9\u0646\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0641\u0636\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0645\u0635\u0631\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0627\u0626\u0645\u06cc \u0627\u0632 NOLOCK SELECT * FROM Sales.Orders WITH (NOLOCK); NOLOCK \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a Dirty Read\u060c \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u06cc\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0646\u0627\u067e\u0627\u06cc\u062f\u0627\u0631 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627\u0647 \u062d\u0644 \u0639\u0645\u0648\u0645\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u06a9\u0644 Blocking \u0646\u06cc\u0633\u062a. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u06cc \u062f\u0644\u06cc\u0644 \u0627\u0632 OPTION (RECOMPILE) \u0628\u0631\u0627\u06cc Query\u0647\u0627\u06cc \u067e\u0631\u062a\u06a9\u0631\u0627\u0631\u060c \u0628\u0627\u0632\u0633\u0627\u0632\u06cc Plan \u062f\u0631 \u0647\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f CPU \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u062f. \u0627\u0646\u062a\u0642\u0627\u0644 \u0647\u0645\u0647 Query\u0647\u0627 \u0628\u0647 Stored Procedure Stored Procedure \u0645\u0641\u06cc\u062f \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0627\u06af\u0631 \u0645\u0646\u0637\u0642 Query\u060c \u0627\u06cc\u0646\u062f\u06a9\u0633 \u06cc\u0627 \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u0646\u0627\u062f\u0631\u0633\u062a \u0628\u0627\u0634\u062f\u060c \u0635\u0631\u0641\u0627\u064b \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u06a9\u062f \u062f\u0631 Stored Procedure \u0645\u0634\u06a9\u0644 \u0631\u0627 \u062d\u0644 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0641\u0632\u0627\u06cc\u0634 \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631 \u0628\u062f\u0648\u0646 \u0627\u0635\u0644\u0627\u062d Query \u0627\u0641\u0632\u0627\u06cc\u0634 RAM \u06cc\u0627 CPU \u06af\u0627\u0647\u06cc \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 Query \u062f\u0627\u0631\u0627\u06cc \u0627\u0633\u06a9\u0646\u060c Sort \u06cc\u0627 Blocking \u0647\u0645\u0686\u0646\u0627\u0646 \u062f\u0631 \u062d\u062c\u0645 \u0628\u0627\u0644\u0627\u062a\u0631 \u0645\u0634\u06a9\u0644 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f. \u0686\u06a9 \u0644\u06cc\u0633\u062a \u0646\u0647\u0627\u06cc\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u062f\u0631 SQL Server \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0646\u062a\u0634\u0627\u0631 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f: Execution Plan \u0648\u0627\u0642\u0639\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. Logical Read \u0642\u0628\u0644 \u0648 \u0628\u0639\u062f \u0645\u0642\u0627\u06cc\u0633\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0632\u0645\u0627\u0646 CPU \u0648 \u0632\u0645\u0627\u0646 \u0633\u067e\u0631\u06cc \u0634\u062f\u0647 \u062b\u0628\u062a \u0634\u062f\u0647 \u0627\u0633\u062a. Query \u0627\u0632 SELECT * \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f. \u0631\u0648\u06cc \u0633\u062a\u0648\u0646\u200c\u0647\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631 \u062a\u0627\u0628\u0639 \u0627\u062c\u0631\u0627 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f. \u0646\u0648\u0639 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0627 \u0646\u0648\u0639 \u0633\u062a\u0648\u0646 \u06cc\u06a9\u0633\u0627\u0646 \u0627\u0633\u062a. \u0627\u06cc\u0646\u062f\u06a9\u0633 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 \u0627\u0644\u06af\u0648\u06cc \u0648\u0627\u0642\u0639\u06cc Query \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. Key Lookup \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062d\u0630\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a. Pagination \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0627\u062a \u0628\u0632\u0631\u06af \u0628\u0627 Keyset \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627 \u06a9\u0648\u062a\u0627\u0647 \u0647\u0633\u062a\u0646\u062f. Blocking \u0648 Deadlock \u0628\u0631\u0631\u0633\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f. Statistics \u0648 Query Store \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. Query \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u06a9\u0645 \u062d\u062c\u0645 \u0648 \u067e\u0631\u062d\u062c\u0645 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u062f\u0647 \u0627\u0633\u062a. \u062a\u0623\u062b\u06cc\u0631 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u062c\u062f\u06cc\u062f \u0628\u0631 INSERT \u0648 UPDATE \u0628\u0631\u0631\u0633\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u062c\u0645\u0639 \u0628\u0646\u062f\u06cc \u0628\u0647\u06cc\u0646\u0647&#8230;<\/p>\n","protected":false},"author":1,"featured_media":322,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,11],"tags":[175,96,176],"class_list":["post-319","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-3","category-11","tag-sql-server","tag-96","tag-176"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.9 (Yoast SEO v28.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627 | \u0646\u0648\u06cc\u0646 \u0647\u0627\u0628<\/title>\n<meta name=\"description\" content=\"\u0622\u0645\u0648\u0632\u0634 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u061b \u0628\u0631\u0631\u0633\u06cc Execution Plan\u060c \u0637\u0631\u0627\u062d\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0631\u0641\u0639 Blocking\u060c Pagination \u0648 Parameter Sniffing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tarahanenovin.ir\/blog\/\u0628\u0647\u06cc\u0646\u0647-\u0633\u0627\u0632\u06cc-query-\u0647\u0627\u06cc-\u067e\u06cc\u0686\u06cc\u062f\u0647-sql-server-\u062f\u0631-\u067e\u0631\u0648\u0698\u0647\u0647\u0627\u06cc\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627\" \/>\n<meta property=\"og:description\" content=\"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627 | \u0646\u0648\u06cc\u0646 \u0647\u0627\u0628\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tarahanenovin.ir\/blog\/\u0628\u0647\u06cc\u0646\u0647-\u0633\u0627\u0632\u06cc-query-\u0647\u0627\u06cc-\u067e\u06cc\u0686\u06cc\u062f\u0647-sql-server-\u062f\u0631-\u067e\u0631\u0648\u0698\u0647\u0647\u0627\u06cc\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0646\u0648\u06cc\u0646 \u0647\u0627\u0628\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-20T10:57:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-20T10:58:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/08\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"TNVN\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a\" \/>\n\t<meta name=\"twitter:data1\" content=\"TNVN\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 \u062f\u0642\u06cc\u0642\u0647\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/\"},\"author\":{\"name\":\"TNVN\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#\\\/schema\\\/person\\\/582f1d78abbf461bad6961cc98ec0725\"},\"headline\":\"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627\",\"datePublished\":\"2026-08-20T10:57:57+00:00\",\"dateModified\":\"2026-08-20T10:58:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/\"},\"wordCount\":298,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp\",\"keywords\":[\"SQL Server\",\"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc\",\"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0648\u0626\u0631\u06cc\"],\"articleSection\":[\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\",\"\u0628\u06a9\u200c\u0627\u0646\u062f\"],\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/\",\"url\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/\",\"name\":\"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627 | \u0646\u0648\u06cc\u0646 \u0647\u0627\u0628\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp\",\"datePublished\":\"2026-08-20T10:57:57+00:00\",\"dateModified\":\"2026-08-20T10:58:48+00:00\",\"description\":\"\u0622\u0645\u0648\u0632\u0634 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u061b \u0628\u0631\u0631\u0633\u06cc Execution Plan\u060c \u0637\u0631\u0627\u062d\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0631\u0641\u0639 Blocking\u060c Pagination \u0648 Parameter Sniffing.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp\",\"contentUrl\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp\",\"width\":1536,\"height\":1024,\"caption\":\"SqlServer\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u062e\u0627\u0646\u0647\",\"item\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/\",\"name\":\"\u0646\u0648\u06cc\u0646 \u0647\u0627\u0628\",\"description\":\"\u0628\u0644\u0627\u06af \u0637\u0631\u0627\u062d\u0627\u0646 \u0646\u0648\u06cc\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fa-IR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#organization\",\"name\":\"\u0637\u0631\u0627\u062d\u0627\u0646 \u0646\u0648\u06cc\u0646\",\"alternateName\":\"TNVN\",\"url\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/logo-1.png\",\"contentUrl\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/logo-1.png\",\"width\":114,\"height\":27,\"caption\":\"\u0637\u0631\u0627\u062d\u0627\u0646 \u0646\u0648\u06cc\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/#\\\/schema\\\/person\\\/582f1d78abbf461bad6961cc98ec0725\",\"name\":\"TNVN\",\"sameAs\":[\"https:\\\/\\\/tarahanenovin.ir\\\/blog\"],\"url\":\"https:\\\/\\\/tarahanenovin.ir\\\/blog\\\/author\\\/adminwp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627 | \u0646\u0648\u06cc\u0646 \u0647\u0627\u0628","description":"\u0622\u0645\u0648\u0632\u0634 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u061b \u0628\u0631\u0631\u0633\u06cc Execution Plan\u060c \u0637\u0631\u0627\u062d\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0631\u0641\u0639 Blocking\u060c Pagination \u0648 Parameter Sniffing.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tarahanenovin.ir\/blog\/\u0628\u0647\u06cc\u0646\u0647-\u0633\u0627\u0632\u06cc-query-\u0647\u0627\u06cc-\u067e\u06cc\u0686\u06cc\u062f\u0647-sql-server-\u062f\u0631-\u067e\u0631\u0648\u0698\u0647\u0647\u0627\u06cc\/","og_locale":"fa_IR","og_type":"article","og_title":"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627","og_description":"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627 | \u0646\u0648\u06cc\u0646 \u0647\u0627\u0628","og_url":"https:\/\/tarahanenovin.ir\/blog\/\u0628\u0647\u06cc\u0646\u0647-\u0633\u0627\u0632\u06cc-query-\u0647\u0627\u06cc-\u067e\u06cc\u0686\u06cc\u062f\u0647-sql-server-\u062f\u0631-\u067e\u0631\u0648\u0698\u0647\u0647\u0627\u06cc\/","og_site_name":"\u0646\u0648\u06cc\u0646 \u0647\u0627\u0628","article_published_time":"2026-08-20T10:57:57+00:00","article_modified_time":"2026-08-20T10:58:48+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/08\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp","type":"image\/webp"}],"author":"TNVN","twitter_card":"summary_large_image","twitter_misc":{"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a":"TNVN","\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646":"12 \u062f\u0642\u06cc\u0642\u0647"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#article","isPartOf":{"@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/"},"author":{"name":"TNVN","@id":"https:\/\/tarahanenovin.ir\/blog\/#\/schema\/person\/582f1d78abbf461bad6961cc98ec0725"},"headline":"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627","datePublished":"2026-08-20T10:57:57+00:00","dateModified":"2026-08-20T10:58:48+00:00","mainEntityOfPage":{"@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/"},"wordCount":298,"commentCount":0,"publisher":{"@id":"https:\/\/tarahanenovin.ir\/blog\/#organization"},"image":{"@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#primaryimage"},"thumbnailUrl":"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/08\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp","keywords":["SQL Server","\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc","\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0648\u0626\u0631\u06cc"],"articleSection":["\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc","\u0628\u06a9\u200c\u0627\u0646\u062f"],"inLanguage":"fa-IR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/","url":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/","name":"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627 | \u0646\u0648\u06cc\u0646 \u0647\u0627\u0628","isPartOf":{"@id":"https:\/\/tarahanenovin.ir\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#primaryimage"},"image":{"@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#primaryimage"},"thumbnailUrl":"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/08\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp","datePublished":"2026-08-20T10:57:57+00:00","dateModified":"2026-08-20T10:58:48+00:00","description":"\u0622\u0645\u0648\u0632\u0634 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u0631\u062a\u0631\u0627\u06a9\u0646\u0634\u061b \u0628\u0631\u0631\u0633\u06cc Execution Plan\u060c \u0637\u0631\u0627\u062d\u06cc \u0627\u06cc\u0646\u062f\u06a9\u0633\u060c \u0631\u0641\u0639 Blocking\u060c Pagination \u0648 Parameter Sniffing.","breadcrumb":{"@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#breadcrumb"},"inLanguage":"fa-IR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/"]}]},{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#primaryimage","url":"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/08\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp","contentUrl":"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/08\/d_xb9Z0kWW2Z5gsmrrf-OpaUxHo-CGnNRdpPQqq_SZRgazvqmA.webp","width":1536,"height":1024,"caption":"SqlServer"},{"@type":"BreadcrumbList","@id":"https:\/\/tarahanenovin.ir\/blog\/%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-query-%d9%87%d8%a7%db%8c-%d9%be%db%8c%da%86%db%8c%d8%af%d9%87-sql-server-%d8%af%d8%b1-%d9%be%d8%b1%d9%88%da%98%d9%87%d9%87%d8%a7%db%8c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u062e\u0627\u0646\u0647","item":"https:\/\/tarahanenovin.ir\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc Query \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 SQL Server \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0627 \u062d\u062c\u0645 \u062a\u0631\u0627\u06a9\u0646\u0634 \u0628\u0627\u0644\u0627"}]},{"@type":"WebSite","@id":"https:\/\/tarahanenovin.ir\/blog\/#website","url":"https:\/\/tarahanenovin.ir\/blog\/","name":"\u0646\u0648\u06cc\u0646 \u0647\u0627\u0628","description":"\u0628\u0644\u0627\u06af \u0637\u0631\u0627\u062d\u0627\u0646 \u0646\u0648\u06cc\u0646","publisher":{"@id":"https:\/\/tarahanenovin.ir\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tarahanenovin.ir\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fa-IR"},{"@type":"Organization","@id":"https:\/\/tarahanenovin.ir\/blog\/#organization","name":"\u0637\u0631\u0627\u062d\u0627\u0646 \u0646\u0648\u06cc\u0646","alternateName":"TNVN","url":"https:\/\/tarahanenovin.ir\/blog\/","logo":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/tarahanenovin.ir\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/07\/logo-1.png","contentUrl":"https:\/\/tarahanenovin.ir\/blog\/wp-content\/uploads\/2026\/07\/logo-1.png","width":114,"height":27,"caption":"\u0637\u0631\u0627\u062d\u0627\u0646 \u0646\u0648\u06cc\u0646"},"image":{"@id":"https:\/\/tarahanenovin.ir\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/tarahanenovin.ir\/blog\/#\/schema\/person\/582f1d78abbf461bad6961cc98ec0725","name":"TNVN","sameAs":["https:\/\/tarahanenovin.ir\/blog"],"url":"https:\/\/tarahanenovin.ir\/blog\/author\/adminwp\/"}]}},"_links":{"self":[{"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/posts\/319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/comments?post=319"}],"version-history":[{"count":1,"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/posts\/319\/revisions"}],"predecessor-version":[{"id":321,"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/posts\/319\/revisions\/321"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/media\/322"}],"wp:attachment":[{"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/media?parent=319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/categories?post=319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tarahanenovin.ir\/blog\/wp-json\/wp\/v2\/tags?post=319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}