Today, we are releasing updates to the .NET Core SDK, included in Visual Studio 2017 RC. You can also install the .NET Core SDK for use with Visual Studio Code or at the command line, on Windows, Mac and Linux. Check out the Visual Studio blog to learn more about this Visual Studio 2017 update.
Buffer Pool یکی از مصرف کنندگان اصلی حافظه در SQL Server است. برای مثال زمانیکه اطلاعاتی را از بانک اطلاعاتی دریافت میکنید، این دادهها در Buffer Pool کش میشوند. همچنین SQL Server اطلاعات کلیه Execution Plans را نیز در Plan Cache که جزئی از Buffer Pool است، برای استفادهی مجدد نگهداری میکند. هر چقدر حافظهی فیزیکی سرور شما بیشتر باشد، مقدار Buffer Pool نیز به همین میزان افزایش خواهد یافت که البته حداکثر آنرا میتوان در تنظیمات حافظهی سرور محدود کرد (Max Server Memory setting).
در دنیای واقعی میزان حافظهی فیزیکی سرورها محدود است. در SQL Server 2014 راه حلی برای این مشکل تحت عنوان Buffer Pool Extensions ارائه شدهاست که محل قرارگیری آنرا در تصویر ذیل مشاهده میکنید:
Buffer Pool Extensions از یک فایل ساده که به آن Extension File نیز گفته میشود، تشکیل شدهاست و امکان ذخیره سازی آن بر روی هاردهای سریعی مانند SSD Driveها میسر است. این فایل، ساختاری را همانند page file، در سیستم عامل ویندوز دارد. در این حالت بجای اضافه کردن RAM بیشتر به سرور، یک Extension File را میتوان بکار گرفت. هر زمان که Buffer Pool اصلی تحت فشار قرار گیرد (به میزان حافظهای بیش از حافظهی فیزیکی سرور نیاز باشد)، از این افزونهی فایلی استفاده خواهد شد.
اطلاعات جزئیات Buffer Pool را توسط کوئری ذیل میتوان بدست آورد:
نحوهی فعال سازی و تنظیم Buffer Pool Extensions
قبل از هر کاری بهتر است وضعیت افزونهی Buffer pool را بررسی کرد:
همانطور که ملاحظه میکنید، در حالت پیش فرض غیرفعال است.
سپس یک فایل یک گیگابایتی را به عنوان افزونهی Buffer pool ایجاد میکنیم.
توصیه شدهاست که این فایل را در یک درایور پر سرعت SSD قرار دهید؛ ولی محدودیتی از لحاظ محل قرارگیری ندارد (هر چند به نظر فقط در حالتیکه از SSD Drive استفاده شود واقعا کار میکند).
اینبار اگر کوئری اول را اجرا کنیم، چنین خروجی قابل مشاهده است:
این فایل به صورت خودکار در حین ریاستارت یا خاموش شدن سرور، حذف شده و با راه اندازی مجدد آن، باز تولید خواهد شد.
تغییر اندازهی افزونهی Buffer pool
اگر سعی کنیم، یک گیگابایت را مثلا به 10 گیگابایت افزایش دهیم:
با خطای ذیل مواجه خواهیم شد:
برای رفع این مشکل، ابتدا باید افزونهی Buffer pool را غیرفعال کرد:
سپس میتوان مجددا اندازه و یا مسیر دیگری را مشخص کرد. بهتر است اندازهی این فایل را حدود 16 برابر حداکثر میزان حافظهی سرور (Max Server Memory) تعیین کنید.
همچنین توصیه شدهاست که پس از غیرفعال کردن این افزونه، بهتر است یکبار instance جاری را ری استارت کنید.
چه زمانی بهتر است از افزونهی Buffer pool استفاده شود؟
در محیطهای read-heavy OLTP، استفاده از یک چنین افزونهای میتواند میزان کارآیی و پاسخگویی سیستم را به شدت افزایش دهد (تا 50 درصد).
سؤال: آیا غیرفعال کردن افزونهی Buffer pool سبب از دست رفتن اطلاعات میشود؟
خیر. BPE، تنها clean pages را در خود ذخیره میکند؛ یعنی تنها اطلاعاتی که Commit شدهاند در آن حضور خواهند داشت و در این حالت حذف آن یا ری استارت کردن سرور، سبب از دست رفتن اطلاعات نخواهند شد.
برای مطالعه بیشتر
Buffer Pool Extension
SQL Server 2014 Buffer Pool Extensions
Do you require a SSD to use the Buffer Pool Extension feature in SQL Server 2014
Buffer Pool Extensions in SQL Server 2014
SQL Server 2014 – Buffer Pool Extension
در دنیای واقعی میزان حافظهی فیزیکی سرورها محدود است. در SQL Server 2014 راه حلی برای این مشکل تحت عنوان Buffer Pool Extensions ارائه شدهاست که محل قرارگیری آنرا در تصویر ذیل مشاهده میکنید:
Buffer Pool Extensions از یک فایل ساده که به آن Extension File نیز گفته میشود، تشکیل شدهاست و امکان ذخیره سازی آن بر روی هاردهای سریعی مانند SSD Driveها میسر است. این فایل، ساختاری را همانند page file، در سیستم عامل ویندوز دارد. در این حالت بجای اضافه کردن RAM بیشتر به سرور، یک Extension File را میتوان بکار گرفت. هر زمان که Buffer Pool اصلی تحت فشار قرار گیرد (به میزان حافظهای بیش از حافظهی فیزیکی سرور نیاز باشد)، از این افزونهی فایلی استفاده خواهد شد.
اطلاعات جزئیات Buffer Pool را توسط کوئری ذیل میتوان بدست آورد:
Select * from sys.dm_os_buffer_descriptors
نحوهی فعال سازی و تنظیم Buffer Pool Extensions
قبل از هر کاری بهتر است وضعیت افزونهی Buffer pool را بررسی کرد:
select * from sys.dm_os_buffer_pool_extension_configuration
همانطور که ملاحظه میکنید، در حالت پیش فرض غیرفعال است.
سپس یک فایل یک گیگابایتی را به عنوان افزونهی Buffer pool ایجاد میکنیم.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON (FILENAME = 'd:\BufferPoolExt.BPE', SIZE = 1GB);
اینبار اگر کوئری اول را اجرا کنیم، چنین خروجی قابل مشاهده است:
این فایل به صورت خودکار در حین ریاستارت یا خاموش شدن سرور، حذف شده و با راه اندازی مجدد آن، باز تولید خواهد شد.
تغییر اندازهی افزونهی Buffer pool
اگر سعی کنیم، یک گیگابایت را مثلا به 10 گیگابایت افزایش دهیم:
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON (FILENAME = 'd:\BufferPoolExt.BPE', SIZE = 10GB);
Could not change the value of the 'BPoolExtensionPath' property
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION OFF
همچنین توصیه شدهاست که پس از غیرفعال کردن این افزونه، بهتر است یکبار instance جاری را ری استارت کنید.
چه زمانی بهتر است از افزونهی Buffer pool استفاده شود؟
در محیطهای read-heavy OLTP، استفاده از یک چنین افزونهای میتواند میزان کارآیی و پاسخگویی سیستم را به شدت افزایش دهد (تا 50 درصد).
سؤال: آیا غیرفعال کردن افزونهی Buffer pool سبب از دست رفتن اطلاعات میشود؟
خیر. BPE، تنها clean pages را در خود ذخیره میکند؛ یعنی تنها اطلاعاتی که Commit شدهاند در آن حضور خواهند داشت و در این حالت حذف آن یا ری استارت کردن سرور، سبب از دست رفتن اطلاعات نخواهند شد.
برای مطالعه بیشتر
Buffer Pool Extension
SQL Server 2014 Buffer Pool Extensions
Do you require a SSD to use the Buffer Pool Extension feature in SQL Server 2014
Buffer Pool Extensions in SQL Server 2014
SQL Server 2014 – Buffer Pool Extension
اشتراکها
EF6.1.2 Beta 1 منتشر شد
اشتراکها
Rider 2018.1 منتشر شد
اشتراکها
BenchmarkDotNet v0.10.13 منتشر شد
BenchmarkDotNet v0.10.13 has been released! This release includes:
- Mono Support for DisassemblyDiagnoser: Now you can easily get an assembly listing not only on .NET Framework/.NET Core, but also on Mono. It works on Linux, macOS, and Windows (Windows requires installed cygwin with
obj
andas
). (See #541) - Support ANY CoreFX and CoreCLR builds: BenchmarkDotNet allows the users to run their benchmarks against ANY CoreCLR and CoreFX builds. You can compare your local build vs MyGet feed or Debug vs Release or one version vs another. (See #651)
- C# 7.2 support (See #643)
- .NET 4.7.1 support (See 28aa94)
- Support Visual Basic project files (.vbroj) targeting .NET Core (See #626)
- DisassemblyDiagnoser now supports generic types (See #640)
- Now it's possible to benchmark both Mono and .NET Core from the same app (See #653)
- Many bug fixes (See details below)
اشتراکها
2.Visual Studio 2017 15.7 منتشر شد
These are the customer-reported issues addressed in 15.7.2:
- With 15.7, users installing an extension on the command line with a nested extension may see an error installing. This has been addressed in the 15.7.2 servicing release.
- Anaconda fails to uninstall during upgrade and issues warning (Error 87).
- The SSDT 15.6.0 Installer configuration registry key could not be opened..
- Editor performance Issues when editing JavaScript.
- The Code Coverage functionality in Visual Studio 2017 ignores async methods.
- Missing
atls.lib
inarm/arm64
after update. - Test Explorer no longer greys out the previously run unit tests.
- Version 15.7.1 debugs .aspx App in a new Chrome instance even if JavaScript debugging is disabled.
- 15.7 compiler fails with Folly.
- ASP project keeps running after closing the web page.
- Chrome Debugger not working and shows an error message, however, the debugger buttons stay active. .
- Rename Python from Rename on the Refactor menu no longer works.
- Visual Studio Installer doesn't work correctly in low disk space conditions.
- Debugger links to browser when previously not set.
- Problems with template argument deduction for class templates.
- C++ constexpr string_view == fails to compile.
- A regression in Type Providers which use native resources (e.g., FSharp.Data.TypeProviders) has been fixed.
- You can now add files to F# ASP.NET Core projects from the UI.
- Listening to Microsoft-Extensions-Logging causes VS diagnostic events window to disconnect with an error message has been fixed in Service Fabric Tools.
VSTest is a very extensible unit test execution framework. The base engine, discovers tests and runs them. It can parallelize across cores, provides process isolation and can integrate with Visual Studio. It has extensibility for different test frameworks, code coverage, test impact analysis, data collection, test result reporting and much more.
نظرات اشتراکها
نگارش نهایی EF Core 3.0 و EF 6.3 منتشر شد
متاسفانه ظاهرا در نسخه ۳، دیگر خبری از شکستن کوئریهای join دار به چندین کوئری، چیزی شبیه به Query IncludeOptimized، نیست و با ذکر Single SQL statement per LINQ query، بر روی آن تاکید کرده اند. ظاهرا این قابلیت مشکلات و باگهای زیادی را در ترجمه صحیح کوئریها برای آنها ایجاد کرده بوده؛ ولی واقعا در کارایی کوئری هایی که joinهای زیادی داشتند تاثیر زیادی داشت.