اما در برنامه نویسی SQL ناکارآمد هستند. اکثر مدیران پایگاه داده رویه های SQL را که مکان نما را پیاده سازی می کنند ، رد می کنند. در صورت امکان ، بهتر است روش را به گونه ای دیگر بنویسید تا از تأثیر منفی بر عملکرد پایگاه داده جلوگیری کنید. اکثر مکان نما ها را می توان با دستورات SQL خوب نوشته شده جایگزین کرد.
در صورت اجتناب ناپذیر ، باید مکان نما را در یک کار برنامه ریزی شده که در اشکالات رایج برنامه نویسی ساعات غیر پیک اجرا می شود ، نگه دارید. از آنجا که مکان نما برای گزارش پرس و جوها و عملیات تبدیل داده ها استفاده می شود ، همیشه نمی توان از آنها جلوگیری کرد. تا آنجا که ممکن است یک پایگاه داده تولیدی که درخواستهای روزانه را در برابر پایگاه داده انجام می دهد محدود کنید.
- ناسازگاری داده ها در روش تعیین تکلیف هنگام اعلام ستون های جدول ، باید یک نوع داده برای هر ستون مشخص کنید. مطمئن شوید که این نوع داده شامل تمام مقادیر مورد نیاز برای ذخیره سازی باشد. وقتی نوع داده ای را تعریف می کنید ، فقط می توانید مقادیر آن نوع را در یک ستون ذخیره کنید.
به عنوان مثال ، ستونی که هزینه کل سفارش را ذخیره می کند ، ممکن است به 2-3 نقطه دقت اعشاری نیاز داشته باشد. اگر این ستون را به عنوان یک عدد صحیح اختصاص دهید ، پایگاه داده فقط می تواند اعداد صحیح را بدون مقادیر اعشاری ذخیره کند. آنچه برای اعشاری رخ می دهد به بستر پایگاه داده بستگی دارد. ممکن است مقادیر به طور خودکار کوتاه شوند یا خطایی رخ دهد. هر دو گزینه می توانند اشکالات عمده ای در برنامه شما ایجاد کنند. هنگام طراحی میز ، همیشه آنچه را که باید ذخیره کنید اشتباهات رایج برنامه نویسی در نظر بگیرید.
این شامل پرس و جوهای ساختمانی می شود. هنگام نوشتن پرس و جوها و ارسال مقادیر پارامترها به رویه های ذخیره شده ، اشتباهات رایج برنامه نویسی باید متغیرها را با انواع داده صحیح اعلام کنید. متغیرهایی که نوع داده ستون را نشان نمی دهند نیز باعث ایجاد خطا یا کوتاه شدن داده ها در فرآیند می شوند.
ز دست دادن یک دنباله منطقی ساده هنگام نوشتن پرس و جو آسان است. دستورات متوانند مجموعه داده ها را به میزان قابل توجهی تغییر دهند. از اشکالات معمول می توان با استفاده از پرانتز یا ساخت دستورات برای نشان دادن منطق مورد نیاز جلوگیری کرد. بیایید به یک دستور نگاه کنیم که عملگرهای را مخلوط می کند.
هدف از بیانیه فوق این است که مشتریانی را که نام و نام خانوادگی آنها "جان" و "اسمیت" است و شناسه مشتری آنها بیشتر
ایرانیان سایبر ز صفر است ، بدست آورد. اما ، چون یک عبارت را با مخلوط کرده اید ، تمام سوابق با شناسه مشتری بیشتر از 0 بازگردانده می شوند. ما می توانیم با استفاده از پرانتز بر این مانع منطقی غلبه کنیم. بیایید آن را به جمله بالا اضافه کنیم.
ما منطق این جمله را تغییر دادیم. اکنون اولین مجموعه پرانتز تمام رکوردها را برمی گرداند که در آن نام مشتری جان یا نام خانوادگی اسمیت است. سپس با استفاده از این فیلتر به بگویید فقط مقادیری را که بیشتر از صفر است ، برگرداند. این نوع جملات منطقی باید قبل از تولید به خوبی آزمایش شوند.
- ساب کوئری باید یک رکورد را برگردانداشتباهات رایج برنامه نویسی .پرس و جوها روش بهینه ای برای نوشتن دستورات نیستند ، اما گاهی اوقات اجتناب ناپذیر هستند. هنگام استفاده از یک پرس و جو ، همیشه باید یک رکورد را برگرداند ، در غیر این صورت پرس و جو شکست می خورد.
در پرس و جو بالا ، لیست شناسه های مشتری را از جدول مشتری دریافت می کنیم. شناسه سفارش را از جدول سفارش با شناسه مشتری منطبق دریافت کنید. اشتباهات رایج برنامه نویسی اگر فقط یک سفارش وجود داشته باشد ، این پرس و جو خوب اجرا می شود. با این حال ، اگر بیش از یک سفارش برای مشتری وجود داشته باشد ،
پرسش فرعی بیش از یک رکورد را برمی گرداند و پرس و جو شکست می خورد. با استفاده از عملگر "top 1" می توانید از این مشکل جلوگیری کنید. اجازه دهید پرس و جو خود را به:در پرس و جو فوق ، من فقط یک رکورد دریافت می کنم و رکوردها را بر اساس تاریخ مرتب می کنم. این پرس و جو اولین سفارش مشتری را دریافت می کند.
- به فهرست بپیوندیدجداول همیشه باید به خوبی نمایه شوند ، و شما می توانید از این بهبود عملکرد با استفاده از دستورات در ستون های اختصاص داده شده به فهرست استفاده کنید. مثال قبلی از کلیدهای اصلی و خارجی جدول استفاده کرد. ستون کلید اصلی استراین همیشه یک شاخص است اشتباهات رایج برنامه نویسی ، بنابراین لازم نیست نگران عملکرد باشید. با این حال ، کلید خارجی نیز باید
اشتباه کدنویسی دارای شاخص باشد.
اما در برنامه نویسی SQL ناکارآمد هستند. اکثر مدیران پایگاه داده رویه های SQL را که مکان نما را پیاده سازی می کنند ، رد می کنند. در صورت امکان ، بهتر است روش را به گونه ای دیگر بنویسید تا از تأثیر منفی بر عملکرد پایگاه داده جلوگیری کنید. اکثر مکان نما ها را می توان با دستورات SQL خوب نوشته شده جایگزین کرد.
در صورت اجتناب ناپذیر ، باید مکان نما را در یک کار برنامه ریزی شده که در اشکالات رایج برنامه نویسی ساعات غیر پیک اجرا می شود ، نگه دارید. از آنجا که مکان نما برای گزارش پرس و جوها و عملیات تبدیل داده ها استفاده می شود ، همیشه نمی توان از آنها جلوگیری کرد. تا آنجا که ممکن است یک پایگاه داده تولیدی که درخواستهای روزانه را در برابر پایگاه داده انجام می دهد محدود کنید.
- ناسازگاری داده ها در روش تعیین تکلیف هنگام اعلام ستون های جدول ، باید یک نوع داده برای هر ستون مشخص کنید. مطمئن شوید که این نوع داده شامل تمام مقادیر مورد نیاز برای ذخیره سازی باشد. وقتی نوع داده ای را تعریف می کنید ، فقط می توانید مقادیر آن نوع را در یک ستون ذخیره کنید.
به عنوان مثال ، ستونی که هزینه کل سفارش را ذخیره می کند ، ممکن است به 2-3 نقطه دقت اعشاری نیاز داشته باشد. اگر این ستون را به عنوان یک عدد صحیح اختصاص دهید ، پایگاه داده فقط می تواند اعداد صحیح را بدون مقادیر اعشاری ذخیره کند. آنچه برای اعشاری رخ می دهد به بستر پایگاه داده بستگی دارد. ممکن است مقادیر به طور خودکار کوتاه شوند یا خطایی رخ دهد. هر دو گزینه می توانند اشکالات عمده ای در برنامه شما ایجاد کنند. هنگام طراحی میز ، همیشه آنچه را که باید ذخیره کنید اشتباهات رایج برنامه نویسی در نظر بگیرید.
این شامل پرس و جوهای ساختمانی می شود. هنگام نوشتن پرس و جوها و ارسال مقادیر پارامترها به رویه های ذخیره شده ، اشتباهات رایج برنامه نویسی باید متغیرها را با انواع داده صحیح اعلام کنید. متغیرهایی که نوع داده ستون را نشان نمی دهند نیز باعث ایجاد خطا یا کوتاه شدن داده ها در فرآیند می شوند.
ز دست دادن یک دنباله منطقی ساده هنگام نوشتن پرس و جو آسان است. دستورات متوانند مجموعه داده ها را به میزان قابل توجهی تغییر دهند. از اشکالات معمول می توان با استفاده از پرانتز یا ساخت دستورات برای نشان دادن منطق مورد نیاز جلوگیری کرد. بیایید به یک دستور نگاه کنیم که عملگرهای را مخلوط می کند.
هدف از بیانیه فوق این است که مشتریانی را که نام و نام خانوادگی آنها "جان" و "اسمیت" است و شناسه مشتری آنها بیشتر
ایرانیان سایبر ز صفر است ، بدست آورد. اما ، چون یک عبارت را با مخلوط کرده اید ، تمام سوابق با شناسه مشتری بیشتر از 0 بازگردانده می شوند. ما می توانیم با استفاده از پرانتز بر این مانع منطقی غلبه کنیم. بیایید آن را به جمله بالا اضافه کنیم.
ما منطق این جمله را تغییر دادیم. اکنون اولین مجموعه پرانتز تمام رکوردها را برمی گرداند که در آن نام مشتری جان یا نام خانوادگی اسمیت است. سپس با استفاده از این فیلتر به بگویید فقط مقادیری را که بیشتر از صفر است ، برگرداند. این نوع جملات منطقی باید قبل از تولید به خوبی آزمایش شوند.
- ساب کوئری باید یک رکورد را برگردانداشتباهات رایج برنامه نویسی .پرس و جوها روش بهینه ای برای نوشتن دستورات نیستند ، اما گاهی اوقات اجتناب ناپذیر هستند. هنگام استفاده از یک پرس و جو ، همیشه باید یک رکورد را برگرداند ، در غیر این صورت پرس و جو شکست می خورد.
در پرس و جو بالا ، لیست شناسه های مشتری را از جدول مشتری دریافت می کنیم. شناسه سفارش را از جدول سفارش با شناسه مشتری منطبق دریافت کنید. اشتباهات رایج برنامه نویسی اگر فقط یک سفارش وجود داشته باشد ، این پرس و جو خوب اجرا می شود. با این حال ، اگر بیش از یک سفارش برای مشتری وجود داشته باشد ،
پرسش فرعی بیش از یک رکورد را برمی گرداند و پرس و جو شکست می خورد. با استفاده از عملگر "top 1" می توانید از این مشکل جلوگیری کنید. اجازه دهید پرس و جو خود را به:در پرس و جو فوق ، من فقط یک رکورد دریافت می کنم و رکوردها را بر اساس تاریخ مرتب می کنم. این پرس و جو اولین سفارش مشتری را دریافت می کند.
- به فهرست بپیوندیدجداول همیشه باید به خوبی نمایه شوند ، و شما می توانید از این بهبود عملکرد با استفاده از دستورات در ستون های اختصاص داده شده به فهرست استفاده کنید. مثال قبلی از کلیدهای اصلی و خارجی جدول استفاده کرد. ستون کلید اصلی استراین همیشه یک شاخص است اشتباهات رایج برنامه نویسی ، بنابراین لازم نیست نگران عملکرد باشید. با این حال ، کلید خارجی نیز باید
اشتباه کدنویسی دارای شاخص باشد.

مهمترین مسابقات اسکرچ برای کودکان