12. Как упаковать (дефрагментировать) индексы базы на MS SQL Server
Данная информация
находилась по адресу: http://www.perlscript.ru
, сейчас находится по адресу: http://www.softpoint.ru
Хотя SQL Server и следит за скоростью
работы
индексов, но все же есть часть работы, которую придеться делать вручную
для повышения производительности доступа к данным. К этим работам
относится и упаковка индексов внутри базы SQL Server. Для выполнения
упаковки предусметрена команда DBCC INDEXDEFRAG. Эта команда позволяет
дефрагментировать каждый индекс, причем не блокируя данные, что
позволяет делать это почти прозрачно для пользователей (почти, так как
системные ресурсы для этой операции все равно требуются и возможно, что
работа пользователей может значительно замедлиться). Также
дефрагментация индексов может привести к уменьшению занимаемого места
таким индексом (это будет временным уменьшением, так как при дальнейшей
работе SQL Server все равно увеличит место занимаемое индексами).
Чтобы произвести переиндексацию необходимо выполнить такой запрос
(например в QA):
Код:
USE base_1cDECLARE @MyTable varchar(32)DECLARE @MyIndex varchar(32)DECLARE MyCursor CURSOR FORSELECT o.name, i.nameFROM sysobjects o INNER JOIN sysindexes i ON o.id = i.idWHERE (o.xtype = ‘U’) AND (INDEXPROPERTY(i.id, i.name, ‘isStatistics’) = 0) AND (i.dpages > 0)ORDER BY o.name, i.indidOPEN MyCursorFETCH NEXT FROM MyCursor INTO @MyTable, @MyIndexWHILE @@FETCH_STATUS=0BEGINPRINT ‘Дефрагментация индекса ‘+@MyIndex+’ из таблицы ‘+@MyTable DBCC INDEXDEFRAG (0,@MyTable,@MyIndex)FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndexENDCLOSE MyCursorDEALLOCATE MyCursor |
base_1c
Что такое СУБД
У Вас может возникнуть вопрос, если база данных это некая информация, которая хранится в таблицах, то как она выглядит физически? Как на нее посмотреть в целом?
Если очень коротко, то это просто файл, созданный в специальном формате, именно так и выглядит база данных (в большинстве случаев БД включает несколько файлов, но сейчас на этом уровне это не так важно). Идем дальше, если база данных это файл в специальном формате, то как его создать или открыть? И тут возникает сложность, ведь просто так, без каких-либо инструментов создать такой файл, т.е
реляционную базу данных, нельзя, для этого нужен специальный инструмент, который мог бы создавать и управлять базой данных, иными словами, работать с этими файлами
Идем дальше, если база данных это файл в специальном формате, то как его создать или открыть? И тут возникает сложность, ведь просто так, без каких-либо инструментов создать такой файл, т.е. реляционную базу данных, нельзя, для этого нужен специальный инструмент, который мог бы создавать и управлять базой данных, иными словами, работать с этими файлами.
Таким инструментом как раз и выступает СУБД – это система управления базами данных, сокращенно СУБД.
Запуск динамического SQL с помощью EXECUTE ()
Вы также можете использовать команду EXEC или EXECUTE для запуска динамического SQL. Формат этой команды:
EXECUTE (@statement)
Вот простой пример:
DECLARE @statement NVARCHAR(4000)
SET @statement = N’SELECT getdate()’
EXECUTE (@statement)
Важно заключить @statement в круглые скобки. Если вы этого не сделаете, инструкция EXECUTE принимает @statement, и вместо запуска динамического SQL она решит, что значение переменной является именем хранимой процедуры
Вы получите следующую ошибку:
Msg 2812, Level 16, State 62, Line 3
Could not find stored procedure ‘SELECT getdate()’.
Конечно, это дает отличную подсказку! Если хотите, можете использовать переменные, чтобы указать, какие хранимые процедуры вызывать.
Detach And Attach Database Using Management Studio
Detach Database
- Login to SQL Server Management Studio or SSMS.
- From the Object Explorer, select the database you want to detach and right-click.
- In the right-click menu go to Tasks >> Detach.
- In the Detach Database pop-up window, select the check box under Drop Connection. You can either select the check box under Update Statistics or leave it. Finally press the OK button.
- The database will be detached from the server.
- To verify, refresh database folder in object explorer. The database is not visible in the object explorer.
- If you go to the location where the mdf and ldf file are stored, you can see the files intact. You can use these files to attach the database back to the same server or to a different server.
Attach Database
- From the Object Explorer, select the folder Database and right-click.
- In the right-click menu, select Attach….
- In the Attach Databases pop-up window, press Add… button.
- It will bring up a file search window. Go to the location of mdf file and select it. Once the file is selected, press OK.
- In the Attach Databases window, the selected file is listed in the Databases to attach section and under the database details section. The log file details and location is also listed in the database details section. If you are attaching the database from the same server and the same file location, then you may not worry about the ldf file location. In-case, if you have moved the ldf file to another location, then you need to verify the file path and correct it if needed.
- Finally press the OK button and refresh the Databases folder in object explorer. You will notice that the database is attached.
Установка экземпляра Microsoft SQL Server 2008
При установке экземпляра оставим набор компонентов и их детальную настройку за скобками, отметив только следующие моменты:
Для каждого компонента желательно создать отдельную учетную запись в Active Directory. Это необходимо для того, чтобы впоследствии эффективно распределять права, которые будут необходимы компонентам для сетевых взаимодействий, как то создание резервных копий, доступ к данным на удаленных компьютерах и т. п.
В качестве пути установки нового экземпляра Microsoft SQL Server следует использовать путь на дисковом массиве, предназначенном для файлов данных БД. Делается это по нескольким причинам, во-первых, папка экземпляра содержит системные базы данных и если мы решили хранить все базы данных на отдельном хранилище, то они не должны стать исключением
Во-вторых, скорость доступа к данным на дисковом массиве файлов данных максимальна, что также немаловажно для системных баз данных. Таким образом, мы полностью освободили системный диск сервера от данных, которые необходимы для работы экземпляра SQL-сервера и в случае необходимости легко можем очистить его и переустановить ОС.
Размещение tempdb на RAM-диске
Задача размещения системной базы данных tempdb на отдельном высокоскоростном хранилище хорошо известна администраторам баз данных. Дело в том, что эта база данных хранит временные таблицы SQL, необходимые для обработки сложных запросов, таким образом, от производительности операций с tempdb существенно зависит производительность всего экземпляра в целом.
Одним из способов увеличения скорости операций ввода-вывода с базой данных tempdb является размещение её файлов на RAM-диске. Для этого необходимо подобрать программное обеспечение, которое позволит создать в системе RAM-диск. На основе тестирования различных RAM-дисков (http://www.raymond.cc/blog/archives/2009/12/08/12-ram-disk-software-benchmarked-for-fastest-read-and-write-speed/) можно сделать вывод о том, что неплохой производительностью, а также бесплатностью с некоторыми ограничениями обладает RAM-диск от DataRam (http://memory.dataram.com/products-and-services/software/ramdisk). Ограничением является максимальный объем диска для бесплатной версии равный 4 Гб.
Естественно объема, определенного для файлов базы данных tempdb на RAM-диске может быть недостаточно для некоторых запросов и может возникнуть неприятная ситуация переполнения файлов базы данных. Для устранения этого необходимо разделить tempdb на файлы хранимые на RAM-диске и файлы размещенные на дисковых массивах. При этом размеры файлов RAM-диска следует установить в соответствии с размером RAM-диска и отключить авторасширение, а размеры файлов на дисковых массивах необходимо установить минимальными с включенным авторасширением. В виду того, что Microsoft SQL Server использует алгоритм round robin для записи в файлы баз данных, основная часть операций будет выполняться с файлами RAM-диска, однако же при их переполнении произойдет не сбой, а авторасширение файлов на дисковых массивах. Финальная настройка файлов tempdb может быть такой, как показана на рис. 3.
Рисунок 3. Файлы базы данных tempdb
Также необходимо настроить сохранение образа RAM-диска на дисковый массив при перезагрузке сервера, иначе база tempdb не сможет запуститься, что повлечет за собой невозможность запуска самого экземпляра SQL-сервера. Для хранения образа целесообразнее всего избрать дисковый массив с файлами данных БД.
Предоставление разрешения на доступ к файловой системе идентификатору безопасности службы¶
С помощью проводника Windows перейдите в папку файловой системы, в которой находятся файлы базы данных. Правой кнопкой мыши щелкните эту папку и выберите пункт Свойства.
На вкладке Безопасность щелкните Изменитьи затем ― Добавить.
В диалоговом окне Выбор пользователей, компьютеров, учетных записей служб или групп щелкните Расположения, в начале списка расположений выберите имя своего компьютера и нажмите кнопку ОК.
В поле Введите имена объектов для выбора введите имя идентификатора безопасности службы. В качестве идентификатора безопасности службы компонента Компонент Database Engine используйте NT SERVICEMSSQLSERVER для экземпляра по умолчанию или NT SERVICEMSSQL$InstanceName — для именованного экземпляра.
Щелкните Проверить имена , чтобы проверить введенные данные. Проверка зачастую выявляет ошибки, по ее окончании может появиться сообщение о том, что имя не найдено. При нажатии кнопки ОК открывается диалоговое окно Обнаружено несколько имен .Теперь выберите идентификатор безопасности службы MSSQLSERVER или NT SERVICEMSSQL$InstanceName и нажмите кнопку ОК. Снова нажмите кнопку ОК , чтобы вернуться в диалоговое окно Разрешения.
В поле имен Группа или пользователь выберите имя идентификатора безопасности службы, а затем в поле Разрешения для установите флажок Разрешить для параметра Полный доступ.
Нажмите кнопку Применить, а затем дважды кнопку ОК , чтобы выполнить выход.
Вот теперь, точно всё
Спасибо за внимание!. P.S
В зависимости от конкретной ОС, конкретной версии SQL сервера, вашей кармы и наличия солнечных вспышек, что-то может пойти не так. Прежде чем приступать к вышеописанным действиям, убедитесь, что: а) оно вам действительно надо б) вы морально готовы ц) вы понимаете, что вы делаете д) у вас вся ночь впереди, чтобы переустановить SQL заново и развернуть бэкап
P.S. В зависимости от конкретной ОС, конкретной версии SQL сервера, вашей кармы и наличия солнечных вспышек, что-то может пойти не так. Прежде чем приступать к вышеописанным действиям, убедитесь, что: а) оно вам действительно надо б) вы морально готовы ц) вы понимаете, что вы делаете д) у вас вся ночь впереди, чтобы переустановить SQL заново и развернуть бэкап.
detach_db2.PNG Просмотреть (31,7 КБ) Станислав Середницкий (Москва), 22/03/2018 17:27
detach_db.PNG Просмотреть (62,9 КБ) Станислав Середницкий (Москва), 22/03/2018 17:28
detach_db3.PNG Просмотреть (87,3 КБ) Станислав Середницкий (Москва), 22/03/2018 17:56
ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse
SQL Server SQL Server позволяет переносить в новое место файлы данных, журнала и полнотекстового каталога пользовательской базы данных; новое место указывается при помощи предложения FILENAME инструкции ALTER DATABASE . In SQL Server SQL Server , you can move the data, log, and full-text catalog files of a user database to a new location by specifying the new file location in the FILENAME clause of the ALTER DATABASE statement. Этот метод подходит для перемещения файлов базы данных в пределах одного экземпляра SQL Server SQL Server . This method applies to moving database files within the same instance SQL Server SQL Server . Для переноса базы данных на другой экземпляр SQL Server SQL Server или другой сервер применяются операции резервного копирования и восстановления или отключения и подключения. To move a database to another instance of SQL Server SQL Server or to another server, use backup and restore or detach and attach operations.
Примите участие в разработке документации по SQL Contribute to SQL documentation
Знаете ли вы, что это содержимое вы можете изменить самостоятельно? Did you know that you could edit the content yourself? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы. If you do so, not only will our documentation improve, but you’ll also be credited as a contributor to the page.
В материале будет дан ответ на один простой вопрос «Для чего нужна среда SQL Server Management Studio?» другими словами мы рассмотрим назначение и основные возможности среды SQL Server Management Studio, т.е. что она умеет.
Наверное, каждый разработчик или администратор баз данных Microsoft SQL Server знаком с этой средой в той или иной форме, но многие начинающие даже не подозревают какими возможностями, обладает данная среда. Мы с Вами уже не раз затрагивали разработку сценариев на T-SQL или администрирование SQL сервера с использованием Management Studio, но конкретно в целом о самой Management Studio мы не разговаривали. Поэтому сегодня я предлагаю рассмотреть основные возможности среды SQL Server Management Studio, для того чтобы начинающие разработчики и администраторы имели представление о том, что же можно сделать с помощью Management Studio.
Итак, если Вы начинающий программист баз данных или администратор Microsoft SQL Server, то Вам также будет полезно ознакомиться со следующими материалами:
Кстати, на всех скриншотах, которые я буду приводить в данном материале, будет именно SQL Server Management Studio 2012 Express.
Итак, давайте приступать.
Объяснение синтаксиса курсора
- Операторы DECLARE — объявление переменных, используемых в блоке кода.
- Операторы SET\SELECT — инициализация переменных конкретными значениями.
- Оператор DECLARE CURSOR — объявление курсора. Замечание: число переменных должно совпадать с числом столбцов в операторе SELECT для оператора DECLARE CURSOR FOR. Это может быть одна или больше переменных, связанных со столбцами в операторе SELECT.
- Оператор OPEN — открывает курсор и наполняет его данными, чтобы начать обработку.
- Операторы FETCH NEXT — Связывает конкретные значения из курсора с переменными в соответствии с оператором DECLARE CURSOR FOR и SELECT Замечание. Эта логика используется для начального наполнения до оператора WHILE, а затем повторяется на каждом шаге цикла оператора WHILE.
- Оператор WHILE — условие для начала и продолжения процесса обработки.
- Операторы BEGIN…END — начало и конец блока кода.При обработке данных может использоваться множество операторов BEGIN…END.
- Обработка данных — в нашем примере логика заключается в создании резервной копии базы данных по указанному пути и имени файла, но это могут быть любые операторы DML или административные задачи.
- Оператор CLOSE — Освобождает текущие данные и связанные с ними блокировки, но оставляет возможность повторно открыть курсор.
- Оператор DEALLOCATE — уничтожает курсор.
20. Как узнать какой сервис-пак установлен на SQL Server 2000 или SQL Server 2005
http://support.microsoft.com/default.aspx?scid=kb;en-us;q321185Код:
SELECT @@VERSION |
Результат:
Microsoft SQL Server 2000 — 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2) |
8.00.2039
7.00.1063 | SQL Server 7.0 SP4 |
7.00.961 | SQL Server 7.0 SP3 |
7.00.842 | SQL Server 7.0 SP2 |
7.00.699 | SQL Server 7.0 SP1 |
7.00.623 | SQL Server 7.0 RTM |
8.00.194 | SQL Server 2000 RTM |
8.00.384 | SQL Server 2000 SP1 |
8.00.534 | SQL Server 2000 SP2 |
8.00.760 | SQL Server 2000 SP3 |
8.00.760 | SQL Server 2000 SP3a |
8.00.2039 | SQL Server 2000 SP4 |
8.00.2040 | SQL Server 2000 SP4+HotFix |
http://sql.ru/forum/actualthread.aspx?bid=1&tid=136531&hl=microsoftversion
9.00.1399.06 | SQL Server 2005 RTM |
9.00.2047.00 | SQL Server 2005 SP1 |
9.00.3042.00 | SQL Server 2005 SP2 |
Код:
SELECT SERVERPROPERTY(‘productversion’), SERVERPROPERTY(‘productlevel’), SERVERPROPERTY(‘edition’) |
8.00.2039 | SP4 | Developer Edition |
Код:
DECLARE @version int, @build int SELECT @version = @@microsoftversion / 0x01000000, @build = cast(@@microsoftversion as binary(2))raiserror(‘@version = %d, @build = %d’, 0, 1, @version, @build) |
Код:
exec xp_msver |
Выполнение хранимой процедуры
Для выполнения хранимой процедуры используется команда: EXEC UTE имя_процедуры ;номер @имя_параметра={значение | @имя_переменной} OUTPUT |DEFAULT ,...n
Если вызов хранимой процедуры не является единственной командой в
пакете, то присутствие команды EXECUTE обязательно. Более того, эта
команда требуется для вызова процедуры из тела другой процедуры или
триггера.
Использование ключевого слова OUTPUT при вызове процедуры раз-
решается только для параметров, которые были объявлены при создании
процедуры с ключевым словом OUTPUT.
Когда же при вызове процедуры для параметра указывается ключевое
слово DEFAULT, то будет использовано значение по умолчанию. Естест-
венно, указанное слово DEFAULT разрешается только для тех параметров,
для которых определено значение по умолчанию.
Из синтаксиса команды EXECUTE видно, что имена параметров могут
быть опущены при вызове процедуры. Однако в этом случае пользователь
должен указывать значения для параметров в том же порядке, в каком они
перечислялись при создании процедуры. Присвоить параметру значение по
умолчанию, просто пропустив его при перечислении, нельзя. Если же тре-
буется опустить параметры, для которых определено значение по умолча-
нию, достаточно явного указания имен параметров при вызове хранимой
процедуры. Более того, таким способом можно перечислять параметры и
их значения в произвольном порядке.
Отметим, что при вызове процедуры указываются либо имена пара-
метров со значениями, либо только значения без имени параметра. Их
комбинирование не допускается.
21. Как решить проблемы с памьятью. 1 — Windows Server не видит больше 4 GB ОЗУ, 2 SQL Server не может использовать больше 2 GB.
Проблемы
с 32 разрядными Windows Server и поддержкой больше 4 GB ОЗУhttp://support.microsoft.com/?id=283037http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ru/library/ServerHelp/32da8fd0-23f4-4dd4-b5f0-f2b45bb042b3.mspx?mfr=truec:\boot.ini/fastdetect /PAEc:\boot.ini/fastdetect/3GBmulti(0)disk(0)rdisk(0)partition(1)\WINDOWS=»Windows
Server 2003, Enterprise» /PAE /3GB /fastdetect/3GBПроблема с
SQL Server (2000, 7.0) и сипользованием болше 2 GB ОЗУhttp://www.support.microsoft.com/?id=274750http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=137853&pg=1Код:
sp_configure ‘show advanced options’, 1RECONFIGURE GOsp_configure ‘awe enabled’, 1RECONFIGURE GOsp_configure ‘max server memory’, 6144RECONFIGURE GO |
Дополнительные пояснения к базе
В таблице «Звонки» для некоторых записей могут отсутствовать id сотрудников. Это означает, что звонивший не дождался ответа и повесил трубку. Такой звонок считается утраченным.
В качестве ключевого столбца для таблицы звонков является столбец «Дата_Время». Следовательно, в одну и ту же секунду не может поступить больше одного звонка. Чтобы максимально приблизить к реальности такой подход, в качестве допущения можно представить программу, которая пропускает звонки в IVR посекундно.
Таблица «Сотрудники_Линии» содержит записи подключенных агентам линий. Если сотруднику не подключена какая-либо линия, то это не означает, что он с нее не принимает звонки. Например, если на линию поступил звонок, а все сотрудники, которые ее обслуживаю заняты, то его может принят любой другой оператор, который свободен на этот момент.
7. Как создать базу для 1С на SQL Server
Есть как минимум 2
способа создания базы. 1 — посредством графического
интерфейса SQL Server Enterorise Manager. Для создания базы, необходимо
выбрать сервер, на котором будет создана база. Установить курсор на
Databases, выбрать через контекстное меню или через меню Action пункт
«New database…». На закладке General ввести имя базы (например
base_1c), на закладке Data Files скорректировать путь на файл данных
(поле location), точно также на закладке Transaction Log можно
скорректировать путь для файла транзакций. Опыт показывает, что если
эти 2 файла (данных и транзакций) хранятся на разных физических дисках
— то скрость системы повышается (при условии что скорость дисков также
сопоставима).
Второй метод — выполнив инструкцию на языке Transact-SQL
(например с QA)
Код:
CREATE DATABASE ON (NAME = N’base_1c_Data’, FILENAME = N’D:\SQLDATA\base_1c_Data.MDF’ , SIZE = 10, FILEGROWTH = 10%) LOG ON (NAME = N’base_1c_Log’, FILENAME = N’D:\SQLDATA\base_1c_Log.LDF’ , SIZE = 2, FILEGROWTH = 10%)COLLATE Cyrillic_General_CI_AS |
base_1cD:\SQLDATA\
sp_executesql против EXECUTE
Возможно, вам интересно, зачем использовать sp_executesql в сравнении с EXECUTE. Каковы различия между ними?
Вот несколько причин, по которым Microsoft рекомендует использовать sp_executesql для запуска динамического SQL:
- С помощью EXECUTE все параметры могут быть преобразованы из своего исходного типа в Unicode. Это затрудняет способность оптимизатора сопоставлять динамически построенный SQL с уже существующим планом.
- Используя sp_executesql, оптимизатор распознает параметры в динамическом SQL, что упрощает оптимизатор для соответствия планам.
- Легче читать параметризованные запросы, чем читать кучу объединяющего их текста.
- Параметрированные запросы менее подвержены атакам SQL-инъекций.
5. Как установить или конвертировать конфигурацию с dbf версии в SQL версию базы данных?
1. Надо иметь приложение 1С, поддерживающую работу с SQL
Server. Рекомендуется использовать релизы 15 или 25 (15 более
медленный, и не поддерживает конвертацию данных в 1С 8.0). Основные
отлияия SQL версии приложения 1С, это название запускаемого файла
1cv7s.exe и характерное окно выбора формата хранения данных, где можно
выбрать форматы: Файлы *.DBF;*CDX или MS SQL Server.
2. Еслу уже имеется база (с какими то
заполненными
данными), то предварительно надо выгрузить эти данные. Это делается из
меню Конфигуратора: Администрирование — Выгрузить данные.
3. Создать базу в SQL Server Enterorise Manager.
Закрыть SQL Server Enterorise Manager.
4. Создать базу в 1С в режиме Конфигуратора,
выбрать тип хранения данных — MS SQL Server.
5. Создать в Конфигураторе пользователя.
6. Определить параметры доступа к MS SQL Server с
Конфигуратора: Меню — Администрирование — Параметры базы данных SQL… .
7. Выполнить загрузку данных, елси есть выгрузка:
Меню — Администрирование — Загрузить данные.
8. Если данных нет — создать метаданные
конфигурации или загрузить измененую конфигурацию.
Необходимо учитывать, что при стечении некоторых обстоятельств, данные
могут не загружаться в MS SQL Sever (например длинные строки
в отборах или дубли данных в индексных полях), для таких
случаев
описание будет отдельное, или же можно поискать в интернете описание
подобных ошибок.
11. Как упаковать (зашринковать) базу на MS SQL Server
Упаковать базу
данных можно или
с помощью графического интерфейса приложения SQL Server Enterorise
Manager, или с помощью выполнения кода (например с QA).
Первый случай выполняется посредством вызова контекстного меню на
необходимой базе и выбора All Tasks — Shrink Database… .
Второй случай опишем несколько подробнее. В приведенном коде
выполняется 4 строки кода. 1 строка — усечение всей базы. 2 строка —
усечение только DATA файла до размера 101 мб. 3 строка — усечение
только файла транзакций до размера 0 мб (несколько килобайт). 4 —
строка — очистка журнала транзакций (иногда файл транзакций усечь
невозможно, по причине заисших открітіх транзакций, выполнение этой
команды должно привести до полной очистки журнала транзакций).
Код:
DBCC shrinkdatabase(N’base_1c’, TRUNCATEONLY )use DBCC SHRINKFILE (N’base_1c_Data’, 101)use DBCC SHRINKFILE (N’base_1c_Log’, 0)DUMP TRANSACTION base_1c WITH TRUNCATE_ONLY |
base_1c
Если приведенный
више код не привел к требуемым результатам, можно попробовать выполнить
следующий код:
Код:
use BACKUP LOG base_1c WITH TRUNCATE_ONLYGODUMP TRANSACTION base_1c WITH no_log GOCHECKPOINT GODBCC SHRINKFILE(base_1c_log,2) GODBCC SQLPERF (logspace) |
base_1c
2. Details
Имя файла для присоединяемой базы данных — это значение выражения, которое стоит перед ключевым словом AS. Имя файла базы данных следует той же семантике, что и аргумент имени файла для sqlite3_open () и sqlite3_open_v2 () ; специальное имя » : memory: » приводит к базе данных в памяти, а пустая строка приводит к новой временной базе данных. Аргументом имени файла может быть имя файла URI, если обработка имени файла URI включена для соединения с базой данных. По умолчанию имена файлов URI отключены, однако это может измениться в будущих версиях SQLite, поэтому разработчикам приложений рекомендуется планировать соответствующие действия.
Имя,которое возникает после ключевого слова AS,является именем базы данных,используемой внутри SQLite.Схематические имена ‘main’ и ‘temp’ относятся к основной БД и БД,используемой для временных таблиц.Главная и временная БД не могут быть подключены или отключены.
К таблицам в подключенной БД можно обратиться с помощью синтаксисаschema-name.table-name. Если имя таблицы уникально во всех подключенных базах данных, а также в основной и временной базах данных, тоschema-nameПриставка не требуется.Если две или более таблицы в разных базах данных имеют одно и то же имя иschema-nameпрефикс не используется в ссылке на таблицу,тогда выбранная таблица-это та таблица в БД,которая была присоединена совсем недавно.
Транзакции, включающие несколько подключенных баз данных, являются атомарными, при условии, что основная база данных не является « : memory: », а — не WAL . Если основная база данных — это «: memory:» или если journal_mode — WAL, то транзакции по-прежнему будут атомарными в каждом отдельном файле базы данных. Но если главный компьютер выходит из строя в середине COMMIT, когда обновляются два или более файлов базы данных, некоторые из этих файлов могут получить изменения, а другие — нет.
Существует ограничение, устанавливаемое с помощью sqlite3_limit () и , на количество баз данных, которые могут быть одновременно подключены к одному соединению с базой данных.
SQLite
3.40
-
ALTER TABLE
alter-table-stmt:скрыть column-def:показать column-constraint:показать conflict-clause:показать expr:показать filter-clause:показать over-clause:показать frame-spec:показать
-
ANALYZE
analyze-stmt:hide Команда ANALYZE собирает статистику об индексах таблиц и хранит собранную информацию внутри базы данных,где оптимизатор запросов
-
Синтаксис комментария SQL
comment-syntax:hide Комментарии не являются командами SQL,но могут встречаться в тексте запросов,передаваемых sqlite3_prepare_v2(),связанных с интерфейсами.
-
Оговорка о конфликте
conflict-clause:hide Пункт ON CONFLICT является нестандартным расширением,специфичным для SQLite,которое может появляться во многих других командах.