- Работа с базой данных TEMPDB
- Проблема
- Причина
- Решение
- Перемещение базы данных tempdb в MS SQL Server 2012
- 1. Указание каталога хранения файлов базы данных tempdb во время установки MS SQL Server 2012
- 2. Изменения каталога хранения файлов базы данных tempdb для существующего экземплялра MS SQL Server
- Смотрите также:
- How to delete temp files in windows server 2012 r2?
- Video Tutorial to Resize Partitions with Partition Tool
- Summary
- Table of Contents
- How to delete temp files windows server 2012 r2
- Does Disk Cleanup work?
- Move the Pagefile.sys to a different partition
- How to resize c drive windows server 2012 r2 with IM-Magic Partition Resizer server edition/Unlimited edition?
- Переполнение папки Temp
- tempdb, база данных tempdb database
- Физические свойства tempdb в SQL Server Physical properties of tempdb in SQL Server
- Перемещение данных и файлов журналов базы данных tempdb в SQL Server Moving the tempdb data and log files in SQL Server
- Параметры базы данных для tempdb в SQL Server Database options for tempdb in SQL Server
- База данных tempdb в Базе данных SQL tempdb database in SQL Database
- Размеры базы данных tempdb для уровней служб на основе DTU tempdb sizes for DTU-based service tiers
- Размеры базы данных tempdb для уровней служб на основе виртуальных ядер tempdb sizes for vCore-based service tiers
- Ограничения Restrictions
- Разрешения Permissions
- Оптимизация производительности базы данных tempdb в SQL Server Optimizing tempdb performance in SQL Server
- Увеличение производительности базы данных tempdb в SQL Server Performance improvements in tempdb for SQL Server
- Оптимизированные для памяти метаданные tempdb Memory-optimized tempdb metadata
- Настройка и использование метаданных оптимизированной для памяти базы данных tempdb Configuring and using memory-optimized tempdb metadata
- Ограничения оптимизированной для памяти базы данных tempdb Memory-optimized tempdb limitations
- Планирование ресурсов для tempdb в SQL Server Capacity planning for tempdb in SQL Server
Работа с базой данных TEMPDB
TEMPDB представляет собой системную базу данных Microsoft SQL Server, в которой хранятся временные таблицы созданные как самим сервером, так и пользователями. Эта база данных создается заново при каждом перезапуске Microsoft SQL Server. По умолчанию размер этой базы данных неограничен и увеличение его осуществляется при необходимости автоматически, порциями по 10% от текущего размера TEMPDB, однако эти параметры могут быть переопределены пользователем. По умолчанию, минимальный размер этой базы данных, который устанавливается при старте Microsoft SQL Server, определяется размером системной базы данных MODEL. Очистка журнала транзакций в этой базе данных производится автоматически, при этом удаляются только неактивные записи журнала транзакций.
При работе 1С:Предприятия 8 в режиме клиент-сервер широко используются временные таблицы . Кроме того, TEMPDB используется Microsoft SQL Server при выполнении запросов, использующих операторы GROUP BY, UNION, DISTINCT и т.п.
Проблема
В процессе работы 1С:Предприятия 8 возможно значительное увеличение размера базы данных TEMPDB .
Причина
Причиной увеличения размера базы данных TEMPDB, как правило, является невозможность автоматической очистки журнала транзакций и повторного использования свободного пространства в базе данных TEMPDB из-за наличия активных транзакций, использующих объекты этой базы данных. Основные причины, вызывающие длительную блокировку работы этих механизмов базы данных TEMPDB, заключаются в следующем:
- «Большие» транзакции, использующие TEMPDB , выполнение которых занимает большой промежуток времени.
- Сетевые ошибки, из-за которых Microsoft SQL Server не получает уведомление о потере сетевого подключения. Если клиентская рабочая станция зависает, перезагружается, или будет выключена во время исполнения определяемой пользователем транзакции, то Microsoft SQL Server будет считать, что клиент продолжает работу, и выполняющаяся клиентская транзакция будет по-прежнему активна. Время обнаружения подобной ситуации зависит от настроек параметров сетевого протокола, используемого Windows . Например, при использовании протокола TCP/IP это время составляет 2 часа.
Если для завершения активных транзакций не хватает места в базе данных, Microsoft SQL Server автоматически увеличивает размер TEMPDB на величину, заданную в параметрах этой базы данных (по умолчанию — 10% от текущего размера).
Решение
Уменьшить размер базы данных TEMPDB до требуемой величины можно следующими способами:
В этом случае размер базы данных TEMPDB будет установлен по умолчанию или, если эта величина переопределена пользователем, размер будет установлен в соответствии с заданными параметрами.
DBCC SHRINKDATABASE (TEMPDB)
DBCC SHRINKFILE ( Имя_Файла_Данных, Желаемый_Размер_Файла_Данных )
go
DBCC SHRINKFILE ( Имя_Файла_Журнала_Транзакций, Желаемый_Размер_Файла_Журнала_Транзакций )
go
Следует отметить, что эти команды рекомендуется выполнять в период наименьшей активности пользователей, и для их выполнения необходимо обладать правами администратора.
Более подробное описание и рекомендации по использованию этих команд можно найти в документации по Microsoft SQL Server.
Перемещение базы данных tempdb в MS SQL Server 2012
Системная база данных tempdb служит рабочим пространством для хранения временных объектов, таких как временные таблицы, промежуточные результаты вычислений, временные хранимые процедуры, результаты буферов и сортировки, внутренние объекты, создаваемые компонентой Database Engine и пр. Кроме того, все изменения данных в базах данных, в которых используются транзакции изоляции моментальных снимков с зафиксированным чтением и транзакции изоляции моментальных снимков, а также изменения данных для таких операций, как операции с индексами в сети, множественные активные результирующие наборы (режим MARS) и триггеры AFTER также хранятся в системной базе данных tempdb. Таким образом, данная база данных используется системой довольно активно, и возможно получить значительный прирост производительности путем переноса файлов базы данных tempdb на отдельный дисковый накопитель, более быстрый SSD-диск или даже RAM-диск. О перемещении системной базы данных tempdb в MS SQL Server 2012 (справедливо для более ранних версий) и пойдет речь в данной статье.
1. Указание каталога хранения файлов базы данных tempdb во время установки MS SQL Server 2012
Указать отдельный каталог расположения файлов базы данных tempdb, можно еще на стадии установки MS SQL Server 2012, на странице настройки компоненты Database Engine на вкладке «Каталоги данных» (Data Directories).
Подробнее про установку MS SQL Server 2012 можно прочить здесь.
2. Изменения каталога хранения файлов базы данных tempdb для существующего экземплялра MS SQL Server
Если же имеется уже установленный экземпляр MS SQL Server, то изменить каталог хранения файлов базы данных tempdb не удастся с помощью стандартных средств отсоединение и присоединение базы данных. В этом случае поможет инструкция ALTER DATABASE языка Transact-SQL. Подключимся к экземпляру MS SQL Server, для которого необходимо выполнить изменения, с помощью программы «SQL Server Management Studio».
Просмотрим текущее расположение файлов базы данных tempdb. Для этого в обозревателе объектов (Object Explorer) раскроем вкладки «Базы данных» (Databases) — «Системные базы данных» (System Databases). Кликнем правой кнопкой мыши по базе данных tempdb и в контекстном меню выберем пункт «Свойства» (Properties).
В открывшемся окне свойств перейдем на вкладку «Файлы» (Files), где можно увидеть имена файлов (File Name), логические имена файлов (Logical Name) и путь расположения каждого из файлов (Path).
Для того чтобы изменить путь расположения необходимо выполнить запрос:
Где E:\SQL_Temp\ новый путь расположения файлов базы данных tempdb. Каталоги файла данных базы — файла tempdb.mdf (или файлов, если их несколько) и файла журнала транзакций — tempdb.ldf могут различаться и, соответственно, могут быть изменены независимо. Для того чтобы выполнить запрос, необходимо нажать кнопку на панели задач «Создать запрос» (New Query), в окне нового запроса ввести текст запроса и нажать кнопку «Выполнить» (Execute), расположенную там же, на панели задач.
После чего необходимо перезапустить экземпляр SQL Server. Сделать это можно, здесь же, кликнув правой кнопкой мыши по имени сервера в обозревателе объектов, и выбрав в контекстном меню пункт «Перезапустить» (Restart).
Если теперь вызвать свойства базы данных tempdb, можно увидеть, что путь расположения файлов изменился.
При старте SQL Server база данных tempdb создается каждый раз заново. Поэтому из старого каталога файлы tempdb.mdf и tempdb.ldf необходимо удалить вручную.
Смотрите также:
Ниже приведена пошаговая инструкция, показывающая как добавить новую базу данных в Microsoft SQLServer 2012 (в более старых редакциях, например в Microsoft SQL Server 2008 R2, набор действий аналогичен). Запускаем…
В рамках данной статьи рассмотрим системные базы данных MS SQL Server 2012. Ниже приводится их подробное описание, расположение, а также разбираются вопросы о необходимости резервного копирования системных баз данных. …
Раннее я уже писал о создании резервных копий в MS SQL Server 2012. В данной статье подробно рассмотрим процессе восстановления базы данных из имеющейся резервной копии (резервных копий) в MS SQL…
How to delete temp files in windows server 2012 r2?
Video Tutorial to Resize Partitions with Partition Tool
Summary
Is your c drive full with useless files? This page is about how to delete temp files and clean up c drive space in Windows server 2012 r2.
by Andrew Wright
Table of Contents
How to delete temp files windows server 2012 r2
Understanding how to delete temp files windows server 2012 r2 is actually a very good skill. It can do wonders and the best part is that you can adjust and adapt it to suit your needs. It’s never going to be a simple fit, all you have to do is to figure out the right approach and then use it to get the best outcome. What you will like about learning how to delete temp files windows server 2012 r2 is that there are multiple solutions.
However, based on how you use the Windows Server, you might be able or might not be able to delete those files especially if they are in use. It really is a system that you have to check out beforehand if you want to avoid any sign of problems to begin with.
Then you can also extend your c drive to solve this problem easily.
Does Disk Cleanup work?
Most of the time Disk Cleanup should work. However, in the case of Windows Server 2012 your files will be under use most of the time. So it really is a necessity to figure out how to remove these files without Disk Cleanup. It might be a bit of a hassle to begin with, but in the end it will be well worth it, so you really have to adjust and adapt all of that to suit your needs adequately for the best results. It’s a good idea to not rely on Disk Cleanup just to be safe, as this is not the ultimate solution you are looking for.
Move the Pagefile.sys to a different partition
If you do that, you will notice that the pagefile will not allow the creation of new temp files for a while and then you can delete the old ones. It’s a very good thing to consider that, as in the end it will be more than ok. The problem is that most people don’t know where this file is located and the simple idea of moving or managing such a file is not ok for them.
How to resize c drive windows server 2012 r2 with IM-Magic Partition Resizer server edition/Unlimited edition?
The most direct solution is to resize the partitions to spare more space for your c drive. You can use partition manage software to make it. Both IM-Magic Partition Resizer server edition and unlimited edition are a great tool that you can use in order to solve this issue. You can delete temp files Windows Server 2012 R2 without any problem with these tips:
Install the desired IM-Magic Partition Resizer version
Make sure that you right click on the volume in question, in this case C
Adjust the slider to resize your partition a little bit.
Extend c drive on server 2012 r2 without data loss
In doing so, all the temp files are deleted automatically.
Using IM-Magic Partition Resizer Server edition and IM-Magic Partition Resizer unlimited edition for this task is very simple and convenient. You get to have some amazing results all the time, and all you need to do is to download the app now. This just makes the process easier and more convenient, and in the end you will have no problem dealing with the temp files properly.
Переполнение папки Temp
Очистка папки temp у пользователя
Есть мысль удалять временные файлы из папки TEMP с помощью cmd скрипта Вместо гпо есть.
Удалить папки с именами, начинающимися на temp
Удалить все папки с именами , начинающихся с temp , вместе с содержимым(сделать префикс параметром).
Удалить все папки содержащие в названии temp
Как можно с помощью bat файла удалить все папки, в названии которых содержится слово «temp»? rd.
Удалить все папки с именами, начинающимися с temp
Удалить все папки с именами, начинающимися с temp, вместе с содержимым (сделать префикс параметром).
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Вирусы из папки Temp
Запускаются процессы 468AA77F-901C-4C8D-ABF8-6DE6F6B12606.exe, Milk.exe каждый раз при запуске.
Папки TEMP и TMP
Когда купил SSD пенесь папку AppData(всю) на диск D. Можно вернуть все на старое место на диск C.
Очистка temp папки
Пытался очистить папку temp . То писало что отказано в доступе то путь не найдет. Попрошу.
Как очистить папки Temp?
В магазине где покупали пк установили Windows 7 64 бита и привезли 2016 г. в Августе на.
Не работает очистка папки temp
Пытаюсь стереть папку Temp с её содержимым, но ни File.Delete, ни Directory.Delete не помогают. От.
Удаление файла из папки Temp
Добрый день. Подскажите пожалуйста каким образом можно удалить txt файл из папки.
tempdb, база данных tempdb database
Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) База данных SQL Azure Azure SQL Database База данных SQL Azure Azure SQL Database Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) База данных SQL Azure Azure SQL Database База данных SQL Azure Azure SQL Database
Системная база данных tempdb — это глобальный ресурс, доступный всем пользователям, подключенным к экземпляру SQL Server SQL Server или Базе данных SQL Azure. The tempdb system database is a global resource that’s available to all users connected to the instance of SQL Server SQL Server or connected to Azure SQL Database. tempdb содержит: tempdb holds:
Временные пользовательские объекты, созданные явно. Temporary user objects that are explicitly created. К ним относятся глобальные или локальные временные таблицы и индексы, временные хранимые процедуры, табличные переменные, возвращаемые функциями с табличными значениями таблицы и курсоры. They include global or local temporary tables and indexes, temporary stored procedures, table variables, tables returned in table-valued functions, and cursors.
Внутренние объекты, создаваемые ядром СУБД. Internal objects that the database engine creates. К ним относятся следующие: They include:
- Рабочие таблицы, хранящие промежуточные результаты буферов, курсоры, сортировки и временное хранилище больших объектов (LOB). Work tables to store intermediate results for spools, cursors, sorts, and temporary large object (LOB) storage.
- рабочие файлы для операций хэш-соединения или статистических хэш-выражений; Work files for hash join or hash aggregate operations.
- промежуточные результаты сортировки для таких операций, как создание или перестроение индексов (если указать SORT_IN_TEMPDB ), либо определенных запросов GROUP BY , ORDER BY или UNION . Intermediate sort results for operations such as creating or rebuilding indexes (if SORT_IN_TEMPDB is specified), or certain GROUP BY , ORDER BY , or UNION queries.
Каждый внутренний объект использует минимум девять страниц: страницу IAM и восьмистраничный экстент. Each internal object uses a minimum of nine pages: an IAM page and an eight-page extent. Дополнительные сведения см. в разделе Страницы и экстенты. For more information about pages and extents, see Pages and extents.
Отдельные базы данных и эластичные пулы Базы данных SQL Azure поддерживают глобальные временные таблицы и глобальные временные хранимые процедуры, которые хранятся в tempdb и имеют область действия на уровне базы данных. Azure SQL Database single databases and elastic pools support global temporary tables and global temporary stored procedures that are stored in tempdb and are scoped to the database level.
Глобальные временные таблицы и глобальные временные хранимые процедуры являются общими для всех сеансов пользователей в рамках одной базы данных SQL. Global temporary tables and global temporary stored procedures are shared for all users’ sessions within the same SQL database. Сеансы пользователей, связанные с другими базами данных SQL, не имеют доступа к глобальным временным таблицам. User sessions from other SQL databases can’t access global temporary tables. Дополнительные сведения см. в разделе Глобальные временные таблицы (база данных SQL Azure) в области базы данных. For more information, see Database scoped global temporary tables (Azure SQL Database). Управляемый экземпляр SQL Azure поддерживает те же временные объекты, что и SQL Server. Azure SQL Managed Instance supports the same temporary objects as does SQL Server.
Для эластичных пулов и отдельных баз данных Базы данных SQL Azure применяются только базы master и tempdb . For Azure SQL Database single databases and elastic pools, only the master database and tempdb database apply. Дополнительные сведения см. в статье Что являет собою сервер Базы данных SQL Azure?. For more information, see What is an Azure SQL Database server?. Описание tempdb в контексте эластичных пулов и отдельных баз данных Базы данных SQL Azure см. в разделе База данных tempdb в Базе данных SQL Azure. For a discussion of tempdb in the context of Azure SQL Database single databases and elastic pools, see tempdb database in Azure SQL Database single databases and elastic pools.
Для Управляемого экземпляра SQL Azure применяются все системные базы данных. For Azure SQL Managed Instance, all system databases apply.
Хранилища версий. Это коллекции страниц данных со строками данных, которые поддерживают функции управления версиями строк. Version stores, which are collections of data pages that hold the data rows that support features for row versioning. Существует два типа хранилищ: общее хранилище версий и хранилище версий для построения индекса в подключенном режиме. There are two types: a common version store and an online-index-build version store. Хранилища версий содержат следующее: The version stores contain:
- версии строк, создаваемые транзакциями изменения данных в базе данных, которая использует READ COMMITTED через транзакции изоляции моментальных снимков и транзакции изоляции управления версиями строк; Row versions that are generated by data modification transactions in a database that uses READ COMMITTED through row versioning isolation or snapshot isolation transactions.
- версии строк, создаваемые транзакциями изменения данных для таких функций, как операции с индексами в подключенном режиме, функции MARS (множественный активный результирующий набор) и триггеры AFTER . Row versions that are generated by data modification transactions for features, such as online index operations, Multiple Active Result Sets (MARS), and AFTER triggers.
Операции в tempdb в минимальном объеме записываются в журнал, что позволяет откатывать транзакции. Operations within tempdb are minimally logged so that transactions can be rolled back. tempdb создается заново при каждом запуске SQL Server SQL Server , чтобы система всегда запускалась с чистой копией базы данных. tempdb is re-created every time SQL Server SQL Server is started so that the system always starts with a clean copy of the database. Временные таблицы и хранимые процедуры удаляются автоматически при отключении, и при выключении системы нет активных соединений. Temporary tables and stored procedures are dropped automatically on disconnect, and no connections are active when the system is shut down.
tempdb не требует сохранения каких-либо данных между сеансами SQL Server SQL Server . tempdb never has anything to be saved from one session of SQL Server SQL Server to another. Операции резервного копирования и восстановления для tempdb недопустимы. Backup and restore operations are not allowed on tempdb .
Физические свойства tempdb в SQL Server Physical properties of tempdb in SQL Server
В следующей таблице приводятся исходные значения конфигурации для файлов данных и журналов tempdb в SQL Server. The following table lists the initial configuration values of the tempdb data and log files in SQL Server. Значения основаны на значениях по умолчанию для базы данных model . The values are based on the defaults for the model database. Размеры этих файлов могут немного отличаться в зависимости от выпуска SQL Server SQL Server . The sizes of these files might vary slightly for different editions of SQL Server SQL Server .
Файл File | Логическое имя Logical name | Физическое имя Physical name | Начальный размер Initial size | Увеличение размера файлов File growth |
---|---|---|---|---|
Первичные данные Primary data | tempdev tempdev | tempdb.mdf tempdb.mdf | 8 МБ 8 megabytes | Автоматическое увеличение на 64 МБ до заполнения диска. Autogrow by 64 MB until the disk is full |
Вторичные файлы данных. Secondary data files | temp# temp# | tempdb_mssql_ # .ndf tempdb_mssql_#.ndf | 8 МБ 8 megabytes | Автоматическое увеличение на 64 МБ до заполнения диска. Autogrow by 64 MB until the disk is full |
Журнал Log | templog templog | templog.ldf templog.ldf | 8 МБ 8 megabytes | Автоматическое увеличение на 64 МБ до максимального размера в 2 ТБ. Autogrow by 64 megabytes to a maximum of 2 terabytes |
Количество вторичных файлов данных зависит от числа логических процессоров на компьютере. The number of secondary data files depends on the number of (logical) processors on the machine. Как правило, если число логических процессоров меньше или равно восьми, используйте равное ему число файлов данных. As a general rule, if the number of logical processors is less than or equal to eight, use the same number of data files as logical processors. Если число логических процессоров больше восьми, используйте восемь файлов данных. If the number of logical processors is greater than eight, use eight data files. Если состязание сохраняется, увеличьте число файлов данных на значение, кратное четырем, пока состязание не снизится до приемлемого уровня, или внесите изменения в рабочую нагрузку или код. Then if contention continues, increase the number of data files by multiples of four until the contention decreases to acceptable levels, or make changes to the workload/code.
Количество файлов данных по умолчанию основано на общих рекомендациях, приведенных в статье KB 2154845. The default value for the number of data files is based on the general guidelines in KB 2154845.
Чтобы проверить текущий размер и параметры увеличения для tempdb , выполнить запрос к представлению tempdb.sys.database_files . To check current size and growth parameters for tempdb , query view tempdb.sys.database_files .
Перемещение данных и файлов журналов базы данных tempdb в SQL Server Moving the tempdb data and log files in SQL Server
Сведения о перемещении файлов журналов и данных tempdb см. в статье Перемещение системных баз данных. To move the tempdb data and log files, see Move system databases.
Параметры базы данных для tempdb в SQL Server Database options for tempdb in SQL Server
В следующей таблице приводится список значений по умолчанию для каждого параметра базы данных tempdb , а также возможность его изменения. The following table lists the default value for each database option in the tempdb database and whether the option can be modified. Чтобы просмотреть текущие настройки этих параметров, используйте представление каталога sys.databases . To view the current settings for these options, use the sys.databases catalog view.
Параметр базы данных Database option | Значение по умолчанию Default value | Можно ли изменить Can be modified |
---|---|---|
ALLOW_SNAPSHOT_ISOLATION ALLOW_SNAPSHOT_ISOLATION | OFF OFF | Да Yes |
ANSI_NULL_DEFAULT ANSI_NULL_DEFAULT | OFF OFF | Да Yes |
ANSI_NULLS ANSI_NULLS | OFF OFF | Да Yes |
ANSI_PADDING ANSI_PADDING | OFF OFF | Да Yes |
ANSI_WARNINGS ANSI_WARNINGS | OFF OFF | Да Yes |
ARITHABORT ARITHABORT | OFF OFF | Да Yes |
AUTO_CLOSE AUTO_CLOSE | OFF OFF | нет No |
AUTO_CREATE_STATISTICS AUTO_CREATE_STATISTICS | ON ON | Да Yes |
AUTO_SHRINK AUTO_SHRINK | OFF OFF | нет No |
AUTO_UPDATE_STATISTICS AUTO_UPDATE_STATISTICS | ON ON | Да Yes |
AUTO_UPDATE_STATISTICS_ASYNC AUTO_UPDATE_STATISTICS_ASYNC | OFF OFF | Да Yes |
CHANGE_TRACKING CHANGE_TRACKING | OFF OFF | нет No |
CONCAT_NULL_YIELDS_NULL CONCAT_NULL_YIELDS_NULL | OFF OFF | Да Yes |
CURSOR_CLOSE_ON_COMMIT CURSOR_CLOSE_ON_COMMIT | OFF OFF | Да Yes |
CURSOR_DEFAULT CURSOR_DEFAULT | GLOBAL GLOBAL | Да Yes |
Параметры доступности базы данных Database Availability Options | ONLINE ONLINE READ_WRITE READ_WRITE | Нет No Нет No |
DATE_CORRELATION_OPTIMIZATION DATE_CORRELATION_OPTIMIZATION | OFF OFF | Да Yes |
DB_CHAINING DB_CHAINING | ON ON | нет No |
ENCRYPTION ENCRYPTION | OFF OFF | нет No |
MIXED_PAGE_ALLOCATION MIXED_PAGE_ALLOCATION | OFF OFF | нет No |
NUMERIC_ROUNDABORT NUMERIC_ROUNDABORT | OFF OFF | Да Yes |
PAGE_VERIFY PAGE_VERIFY | Значение CHECKSUM для новых установок SQL Server SQL Server . CHECKSUM for new installations of SQL Server SQL Server Значение NONE для обновлений SQL Server SQL Server . NONE for upgrades of SQL Server SQL Server | Да Yes |
PARAMETERIZATION PARAMETERIZATION | ПРОСТОЙ SIMPLE | Да Yes |
QUOTED_IDENTIFIER QUOTED_IDENTIFIER | OFF OFF | Да Yes |
READ_COMMITTED_SNAPSHOT READ_COMMITTED_SNAPSHOT | OFF OFF | нет No |
RECOVERY RECOVERY | ПРОСТОЙ SIMPLE | нет No |
RECURSIVE_TRIGGERS RECURSIVE_TRIGGERS | OFF OFF | Да Yes |
Параметры компонента Service Broker Service Broker Options | ENABLE_BROKER ENABLE_BROKER | Да Yes |
TRUSTWORTHY TRUSTWORTHY | OFF OFF | нет No |
Описание этих баз данных см. в статье Параметры ALTER DATABASE SET (Transact-SQL). For a description of these database options, see ALTER DATABASE SET Options (Transact-SQL).
База данных tempdb в Базе данных SQL tempdb database in SQL Database
Размеры базы данных tempdb для уровней служб на основе DTU tempdb sizes for DTU-based service tiers
Целевой уровень обслуживания Service-level objective | Максимальный размер файла данных tempdb (ГБ) Maximum tempdb data file size (GB) | Число файлов данных tempdb Number of tempdb data files | Максимальный размер данных tempdb (ГБ) Maximum tempdb data size (GB) |
---|---|---|---|
Basic Basic | 13.9 13.9 | 1 1 | 13.9 13.9 |
S0 S0 | 13.9 13.9 | 1 1 | 13.9 13.9 |
S1 S1 | 13.9 13.9 | 1 1 | 13.9 13.9 |
S2 S2 | 13.9 13.9 | 1 1 | 13.9 13.9 |
S3 S3 | 32 32 | 1 1 | 32 32 |
S4 S4 | 32 32 | 2 2 | 64 64 |
S6 S6 | 32 32 | 3 3 | 96 96 |
S7 S7 | 32 32 | 6 6 | 192 192 |
S9 S9 | 32 32 | 12 12 | 384 384 |
S12 S12 | 32 32 | 12 12 | 384 384 |
P1 P1 | 13.9 13.9 | 12 12 | 166.7 166.7 |
P2 P2 | 13.9 13.9 | 12 12 | 166.7 166.7 |
P4 P4 | 13.9 13.9 | 12 12 | 166.7 166.7 |
P6 P6 | 13.9 13.9 | 12 12 | 166.7 166.7 |
P11 P11 | 13.9 13.9 | 12 12 | 166.7 166.7 |
P15 P15 | 13.9 13.9 | 12 12 | 166.7 166.7 |
Эластичные пулы уровня «Базовый» (все конфигурации DTU) Basic Elastic Pools (all DTU configurations) | 13.9 13.9 | 12 12 | 166.7 166.7 |
Эластичные пулы ценовой категории «Стандартный» (50 eDTU) Standard Elastic Pools (50 eDTU) | 13.9 13.9 | 12 12 | 166.7 166.7 |
Эластичные пулы ценовой категории «Стандартный» (100 eDTU) Standard Elastic Pools (100 eDTU) | 32 32 | 1 1 | 32 32 |
Эластичные пулы ценовой категории «Стандартный» (200 eDTU) Standard Elastic Pools (200 eDTU) | 32 32 | 2 2 | 64 64 |
Эластичные пулы ценовой категории «Стандартный» (300 eDTU) Standard Elastic Pools (300 eDTU) | 32 32 | 3 3 | 96 96 |
Эластичные пулы ценовой категории «Стандартный» (400 eDTU) Standard Elastic Pools (400 eDTU) | 32 32 | 3 3 | 96 96 |
Эластичные пулы ценовой категории «Стандартный» (800 eDTU) Standard Elastic Pools (800 eDTU) | 32 32 | 6 6 | 192 192 |
Эластичные пулы ценовой категории «Стандартный» (1200 eDTU) Standard Elastic Pools (1200 eDTU) | 32 32 | 10 10 | 320 320 |
Эластичные пулы ценовой категории «Стандартный» (1600–3000 eDTU) Standard Elastic Pools (1600-3000 eDTU) | 32 32 | 12 12 | 384 384 |
Эластичные пулы уровня «Премиум» (все конфигурации DTU) Premium Elastic Pools (all DTU configurations) | 13.9 13.9 | 12 12 | 166.7 166.7 |
Размеры базы данных tempdb для уровней служб на основе виртуальных ядер tempdb sizes for vCore-based service tiers
Ограничения Restrictions
С базой данных tempdb нельзя выполнять следующие операции: The following operations can’t be performed on the tempdb database:
- Добавление файловых групп. Adding filegroups.
- Резервное копирование и восстановление из копии. Backing up or restoring the database.
- Изменение параметров сортировки. Changing collation. Параметрами сортировки по умолчанию являются параметры сортировки сервера. The default collation is the server collation.
- Изменение владельца базы данных. Changing the database owner. Владельцем tempdb является sa tempdb is owned by sa.
- Создание моментального снимка базы данных. Creating a database snapshot.
- Удаление базы данных. Dropping the database.
- Удаление пользователя guest из базы данных. Dropping the guest user from the database.
- Включение отслеживания измененных данных. Enabling Change Data Capture.
- Участие в зеркальном отображении базы данных. Participating in database mirroring.
- Удаление первичной файловой группы, первичного файла данных или файла журнала. Removing the primary filegroup, primary data file, or log file.
- Переименование базы данных или первичной файловой группы. Renaming the database or primary filegroup.
- Выполнение DBCC CHECKALLOC . Running DBCC CHECKALLOC .
- Выполнение DBCC CHECKCATALOG . Running DBCC CHECKCATALOG .
- Перевод базы данных в режим OFFLINE . Setting the database to OFFLINE .
- Перевод базы данных или первичной файловой группы в режим READ_ONLY . Setting the database or primary filegroup to READ_ONLY .
Разрешения Permissions
Любой пользователь может создавать временные объекты в tempdb . Any user can create temporary objects in tempdb . Если не предоставлены дополнительные разрешения, пользователям доступны только принадлежащие им объекты. Users can access only their own objects, unless they receive additional permissions. Можно отозвать разрешение на подключение к tempdb , чтобы запретить пользователю работать с tempdb . It’s possible to revoke the connect permission to tempdb to prevent a user from using tempdb . Но делать это не рекомендуется, так как tempdb требуется для выполнения некоторых стандартных операций. We don’t recommend it because some routine operations require the use of tempdb .
Оптимизация производительности базы данных tempdb в SQL Server Optimizing tempdb performance in SQL Server
Размер и физическое размещение базы данных tempdb может влиять на производительность системы. The size and physical placement of the tempdb database can affect the performance of a system. Например, если для базы данных tempdb установлен слишком малый размер, часть системной нагрузки может приходиться на автоувеличение tempdb до размера, требуемого для поддержки рабочей нагрузки при каждом перезапуске экземпляра SQL Server SQL Server . For example, if the size that’s defined for tempdb is too small, part of the system-processing load might be taken up with autogrowing tempdb to the size required to support the workload every time you restart the instance of SQL Server SQL Server .
По возможности используйте мгновенную инициализацию файлов, чтобы повысить производительность операций увеличения файлов данных. If possible, use instant file initialization to improve the performance of growth operations for data files.
Заранее выделите место для всех файлов tempdb , установив для файла размер, достаточный для обеспечения обычной рабочей нагрузки в среде. Preallocate space for all tempdb files by setting the file size to a value large enough to accommodate the typical workload in the environment. Предварительное выделение позволяет избежать слишком частого расширения tempdb , способного повлиять на производительность. Preallocation prevents tempdb from expanding too often, which affects performance. Следует установить автоувеличение для базы данных tempdb , чтобы увеличить место на диске для незапланированных исключений. The tempdb database should be set to autogrow to increase disk space for unplanned exceptions.
Файлы данных в каждой файловой группе должны иметь одинаковый размер, так как SQL Server SQL Server использует алгоритм пропорционального заполнения, который повышает вероятность выделения памяти в файлах с большим объемом свободного пространства. Data files should be of equal size within each filegroup, because SQL Server SQL Server uses a proportional-fill algorithm that favors allocations in files with more free space. Разделение tempdb на множество файлов данных равного размера обеспечивает эффективное выполнение использующих tempdb операций с высокой степенью параллелизма. Dividing tempdb into multiple data files of equal size provides a high degree of parallel efficiency in operations that use tempdb .
Установите приемлемое значение шага увеличения размера файла, чтобы оно не было слишком низким для файлов базы данных tempdb . Set the file growth increment to a reasonable size to prevent the tempdb database files from growing by too small a value. Если увеличение размера файлов будет слишком малым по сравнению с объемом записываемых в tempdb данных, tempdb может постоянно требовать расширения. If the file growth is too small compared to the amount of data that’s being written to tempdb , tempdb might have to constantly expand. Это скажется на производительности. That will affect performance.
Чтобы проверить текущий размер и параметры увеличения для tempdb , используйте следующий запрос: To check current size and growth parameters for tempdb , use the following query:
Поместите базу данных tempdb в быструю подсистему ввода-вывода. Put the tempdb database on a fast I/O subsystem. Если имеется много непосредственно присоединенных дисков, то используйте чередование дисков. Use disk striping if there are many directly attached disks. Отдельные файлы данных tempdb или их группы не обязательно должны располагаться на разных дисках или шпинделях, если только у вы не наблюдаете узкие места в подсистеме ввода-вывода. Individual or groups of tempdb data files don’t necessarily need to be on different disks or spindles unless you’re also encountering I/O bottlenecks.
Расположите базу данных tempdb на дисках, отличающихся от используемых пользовательскими базами данных. Put the tempdb database on disks that differ from the disks that user databases use.
Увеличение производительности базы данных tempdb в SQL Server Performance improvements in tempdb for SQL Server
Начиная с версии SQL Server 2016 (13.x); SQL Server 2016 (13.x) , производительность tempdb дополнительно оптимизирована следующим образом: Starting with SQL Server 2016 (13.x); SQL Server 2016 (13.x) , tempdb performance is further optimized in the following ways:
- Временные таблицы и табличные переменные кэшируются. Temporary tables and table variables are cached. Кэширование позволяет операциям удаления и создания временных объектов выполняться очень быстро. Caching allows operations that drop and create the temporary objects to run very quickly. Кэширование также снижает вероятность возникновения состязаний, связанных с метаданными и выделением страниц. Caching also reduces page allocation and metadata contention.
- Усовершенствован протокол кратковременных блокировок выделения страниц для снижения количества используемых кратковременных блокировок UP (обновление). The allocation page latching protocol is improved to reduce the number of UP (update) latches that are used.
- Снижены затраты ресурсов на ведение журнала tempdb — уменьшено потребление пропускной способности подсистемы ввода-вывода файлом журнала tempdb . Logging overhead for tempdb is reduced to reduce disk I/O bandwidth consumption on the tempdb log file.
- Программа установки добавляет множество файлов данных tempdb при установке нового экземпляра. Setup adds multiple tempdb data files during a new instance installation. Эту задачу можно выполнить с помощью нового элемента управления для ввода в пользовательском интерфейсе в разделе Настройка ядра СУБД и параметра командной строки /SQLTEMPDBFILECOUNT . You can accomplish this task by using the new UI input control in the Database Engine Configuration section and the command-line parameter /SQLTEMPDBFILECOUNT . По умолчанию программа установки добавляет столько файлов данных tempdb , сколько имеется логических процессоров, но их может быть не больше восьми. By default, setup adds as many tempdb data files as the logical processor count or eight, whichever is lower.
- При наличии множества файлов данных tempdb автоматическое увеличение выполняется для всех файлов в одно время и в равном объеме согласно параметрам увеличения. When there are multiple tempdb data files, all files autogrow at the same time and by the same amount, depending on growth settings. Флаг трассировки 1117 больше не требуется. Trace flag 1117 is no longer required.
- Для всех операций распределения в tempdb используются единообразные экстенты. All allocations in tempdb use uniform extents. Флаг трассировки 1118 больше не требуется. Trace flag 1118 is no longer required.
- Для первичной файловой группы свойство AUTOGROW_ALL_FILES включено и не может быть изменено. For the primary filegroup, the AUTOGROW_ALL_FILES property is turned on and the property can’t be modified.
Дополнительные сведения об улучшениях производительности в tempdb см. в статье блога TEMPDB — Files and Trace Flags and Updates, Oh My! (TEMPDB — файлы, флаги трассировки и обновления). For more information on performance improvements in tempdb , see the blog article TEMPDB — Files and Trace Flags and Updates, Oh My!.
Оптимизированные для памяти метаданные tempdb Memory-optimized tempdb metadata
Состязание метаданных tempdb всегда было узким местом для масштабируемости многих рабочих нагрузок, выполняющихся в SQL Server SQL Server . Metadata contention in tempdb has historically been a bottleneck to scalability for many workloads running on SQL Server SQL Server . В SQL Server 2019 (15.x) SQL Server 2019 (15.x) появилась новая функция оптимизированных для памяти метаданных tempdb, входящая в семейство функций выполняющейся в памяти базы данных. SQL Server 2019 (15.x) SQL Server 2019 (15.x) introduces a new feature that’s part of the in-memory database feature family: memory-optimized tempdb metadata.
Она эффективно устраняет существующее узкое место и открывает новый уровень масштабируемости для рабочих нагрузок, активно использующих tempdb. This feature effectively removes this bottleneck and unlocks a new level of scalability for tempdb-heavy workloads. В SQL Server 2019 (15.x) SQL Server 2019 (15.x) системные таблицы, связанные с управлением метаданными временных таблиц, можно переместить в неустойчивые таблицы без кратковременной блокировки, оптимизированные для памяти. In SQL Server 2019 (15.x) SQL Server 2019 (15.x) , the system tables involved in managing temporary table metadata can be moved into latch-free, non-durable, memory-optimized tables.
Просмотрите это 7-минутное видео, чтобы узнать, как и когда следует использовать метаданные tempdb, оптимизированные для памяти: Watch this seven-minute video for an overview of how and when to use memory-optimized tempdb metadata:
Настройка и использование метаданных оптимизированной для памяти базы данных tempdb Configuring and using memory-optimized tempdb metadata
Чтобы согласиться на применение этой новой функции, используйте следующий скрипт: To opt in to this new feature, use the following script:
Чтобы это изменение конфигурации вступило в силу, нужно перезапустить службу. This configuration change requires a restart of the service to take effect.
Вы можете проверить, является ли tempdb оптимизированной для памяти, используя следующую команду T-SQL: You can verify whether or not tempdb is memory-optimized by using the following T-SQL command:
Если по какой-то причине не удается запустить сервер после включения оптимизированных для памяти метаданных tempdb , можно обойти эту функцию, запустив экземпляр SQL Server в минимальной конфигурации с помощью параметра запуска -f. If the server fails to start for any reason after you enable memory-optimized tempdb metadata, you can bypass the feature by starting the SQL Server instance with minimal configuration through the -f startup option. После этого вы можете отключить функцию и перезапустить SQL Server в нормальном режиме. You can then disable the feature and restart SQL Server in normal mode.
Чтобы защитить сервер от потенциальных состояний нехватки памяти, можно привязать tempdb к пулу ресурсов. To protect the server from potential out-of-memory conditions, you can bind tempdb to a resource pool. В этом случае вместо действий, которые обычно выполняются при привязке пула ресурсов к базе данных, следует использовать команду ALTER SERVER . This is done through the ALTER SERVER command rather than the steps you would normally follow to bind a resource pool to a database.
Кроме того, даже если метаданные оптимизированной для памяти базы данных tempdb уже включены, чтобы это изменение вступило в силу, требуется перезагрузка. This change also requires a restart to take effect, even if memory-optimized tempdb metadata is already enabled.
Ограничения оптимизированной для памяти базы данных tempdb Memory-optimized tempdb limitations
Включение и отключение функции не является динамическим. Toggling the feature on and off is not dynamic. Из-за внутренних изменений, которые необходимо внести в структуру tempdb , для включения или отключения этой функции требуется перезапуск. Because of the intrinsic changes that need to be made to the structure of tempdb , a restart is required to either enable or disable the feature.
Отдельная транзакция не может обратиться к таблицам, оптимизированным для памяти, в более чем одной базе данных. A single transaction is not allowed to access memory-optimized tables in more than one database. Все транзакции, связанные с таблицей, оптимизированной для памяти, в пользовательской базе данных, не смогут обратиться к системным представлениям tempdb в той же транзакции. Any transactions that involve a memory-optimized table in a user database won’t be able to access tempdb system views in the same transaction. Если вы попытаетесь обратиться к системным представлениям tempdb в транзакции с участием таблицы, оптимизированной для памяти, в пользовательской базе данных, возникнет следующая ошибка: If you try to access tempdb system views in the same transaction as a memory-optimized table in a user database, you’ll receive the following error:
Запросы к таблицам, оптимизированным для памяти, не поддерживают указания блокировки и изоляции, поэтому запросы к представлениям каталога оптимизированной для памяти tempdb не будут учитывать указания блокировки и изоляции. Queries against memory-optimized tables don’t support locking and isolation hints, so queries against memory-optimized tempdb catalog views won’t honor locking and isolation hints. Как и в случае с другими системными представлениями каталога в SQL Server SQL Server , все транзакции для системных представлений будут находиться в изоляции READ COMMITTED (или READ COMMITTED SNAPSHOT в нашем случае). As with other system catalog views in SQL Server SQL Server , all transactions against system views will be in READ COMMITTED (or in this case, READ COMMITTED SNAPSHOT ) isolation.
Если оптимизированные для памяти метаданные tempdb включены, индексы columnstore нельзя создавать во временных таблицах. Columnstore indexes can’t be created on temporary tables when memory-optimized tempdb metadata is enabled.
В связи с ограничением на индексы columnstore использование системной хранимой процедуры sp_estimate_data_compression_savings с параметром сжатия данных COLUMNSTORE или COLUMNSTORE_ARCHIVE не поддерживается, если включены оптимизированные для памяти метаданные tempdb . Due to the limitation on columnstore indexes, use of the sp_estimate_data_compression_savings system stored procedure with the COLUMNSTORE or COLUMNSTORE_ARCHIVE data compression parameter is not supported when memory-optimized tempdb metadata is enabled.
Эти ограничения применяются только при создании ссылок на системные представления tempdb . These limitations apply only when you’re referencing tempdb system views. При необходимости вы сможете создать временную таблицу в той же транзакции, где обращаетесь к таблице, оптимизированной для памяти, в пользовательской базе данных. You can create a temporary table in the same transaction as you access a memory-optimized table in a user database, if desired.
Планирование ресурсов для tempdb в SQL Server Capacity planning for tempdb in SQL Server
Определение требуемого размера tempdb в рабочей среде SQL Server SQL Server зависит от многих факторов. Determining the appropriate size for tempdb in a SQL Server SQL Server production environment depends on many factors. Как описано выше, эти факторы включают текущую рабочую нагрузку и используемые функции SQL Server SQL Server . As described earlier, these factors include the existing workload and the SQL Server SQL Server features that are used. Рекомендуется проанализировать текущую рабочую нагрузку, выполнив следующие задачи в среде тестирования SQL Server: We recommend that you analyze the existing workload by performing the following tasks in a SQL Server test environment:
- Включите автоувеличение для tempdb . Set autogrow on for tempdb .
- Запускайте отдельные запросы или файлы трассировки рабочей нагрузки и следите за использованием диска базой данных tempdb . Run individual queries or workload trace files and monitor tempdb space use.
- Выполняйте операции обслуживания индексов, например перестроение индексов, и следите за использованием диска базой данных tempdb . Execute index maintenance operations such as rebuilding indexes, and monitor tempdb space.
- Используйте значения используемого пространства на диске из предыдущих шагов для прогнозирования общей рабочей нагрузки. Use the space-use values from the previous steps to predict your total workload usage. Скорректируйте полученное значение с учетом предполагаемой параллельной обработки и задайте соответствующий размер tempdb . Adjust this value for projected concurrent activity, and then set the size of tempdb accordingly.