Шпаргалка по SQL

03.09.15

База данных - Инструменты администратора БД

Не знаете язык запросов SQL, а надо быстро слепить что-нибудь простенькое? Тогда мы идем к вам ))

Шпаргалка по SQL

Предназначена для коллег, плохо знающих язык запросов SQL (как я). Уже давно веду файл, в котором собираю примеры запросов на разные случаи жизни. 
Все запросы создавались и работают в MS SQL. 
 

Соединение нескольких таблиц, выборка конкретных полей

SELECT ОстаткиНоменклатуры.Код, ОстаткиНоменклатуры.Наименование, Таблица.Поле3, Таблица2.Поле4
  FROM [БазаДанных].[dbo].[Таблица1] as Таблица1
  left join  
  [БазаДанных].[dbo].[Таблица2] as Таблица2
  on Таблица1.Поле1 = Таблица2.Поле3
 

Показать 1000 записей, где длина строки, склеенной из нескольких полей, больше 36 символов

SELECT TOP 1000 [Фамилия] + [Имя] + [Отчество] as FIO,len([Фамилия] + [Имя] + [Отчество]) as LENGHT,*
  FROM [БазаДанных].[dbo].[Таблица]
  where LEN([Фамилия] + [Имя] + [Отчество]) > 36
 

Найти максимальную длину строки, которая будет состоять из нескольких столбцов

SELECT MAX(LEN([Фамилия] + [Имя] + [Отчество])) FROM [БазаДанных].[dbo].[Таблица]
 

Получить количество записей во всех таблицах базы данных

SELECT
    o.Name,
    i.rows
FROM sysobjects o
INNER JOIN sysindexes i
ON (o.id = i.id)
WHERE o.xtype = 'u'
AND i.indid < 2
ORDER BY o.name
 

Получить размер всех баз на сервере баз данных (сортировка по размеру журнала транзакций)

select 
db_name(dbid) as DataBases, 
sum(size) * 8 / 1024 / 1024 as SizeGB,
sum(case when f.groupid = 0 then 0 else size end) * 8 / 1024 / 1024 as DataSizeGB,
sum(case when f.groupid != 0 then 0 else size end) * 8 / 1024 / 1024 as LogSizeGB
from master.sys.sysaltfiles as f
group by db_name(dbid)
order by LogSizeGB desc

Регламентные операции с базами MS SQL Server 

* реиндексация базы (выбрать базу) *
* блокирует работу с базой, поэтому надо выбирать технологические перерывы
sp_msforeachtable N'DBCC dbreindex("?")'


* дефрагментация индексов
* если сделана реиндексация, то дефрагментация индексов не нужна
* если нельзя делать реиндексацию, то делать хотя бы дефрагментацию
sp_msforeachtable N'DBCC INDEXDEFRAG (<имя базы данных>, ''?'')'


* обновление статистики SQL Server (для правильного выбора плана запроса 
* выбрать базу!
exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'


* очистка процедурного кэша (кэша планов) 
* выбрать базу!
* сразу после обновления статистики
dbcc freeproccache

 

Если есть хотя бы минимальный интерес - продолжу. 

 

Update 09.02.2018: 

Как узнать размер всех таблиц в базе данных:

DECLARE @pagesizeKB int

SELECT @pagesizeKB = low / 1024 FROM master.dbo.spt_values

WHERE number = 1 AND type = 'E'

SELECT

table_name = OBJECT_NAME(o.id),

rows = i1.rowcnt,

reservedKB = (ISNULL(SUM(i1.reserved), 0) + ISNULL(SUM(i2.reserved), 0)) * @pagesizeKB,

dataKB = (ISNULL(SUM(i1.dpages), 0) + ISNULL(SUM(i2.used), 0)) * @pagesizeKB,

index_sizeKB = ((ISNULL(SUM(i1.used), 0) + ISNULL(SUM(i2.used), 0))

- (ISNULL(SUM(i1.dpages), 0) + ISNULL(SUM(i2.used), 0))) * @pagesizeKB,

unusedKB = ((ISNULL(SUM(i1.reserved), 0) + ISNULL(SUM(i2.reserved), 0))

- (ISNULL(SUM(i1.used), 0) + ISNULL(SUM(i2.used), 0))) * @pagesizeKB

FROM sysobjects o

LEFT OUTER JOIN sysindexes i1 ON i1.id = o.id AND i1.indid < 2

LEFT OUTER JOIN sysindexes i2 ON i2.id = o.id AND i2.indid = 255

WHERE OBJECTPROPERTY(o.id, N'IsUserTable') = 1 --same as: o.xtype = 'IsView'

OR (OBJECTPROPERTY(o.id, N'IsView') = 1 AND OBJECTPROPERTY(o.id, N'IsIndexed') = 1)

GROUP BY o.id, i1.rowcnt

ORDER BY 3 DESC

MS SQL Server язык запросов SQL SQL как узнать

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    19667    131    70    

133

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    12892    53    33    

72

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    11746    51    8    

80

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34565    109    152    

75

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    74284    629    45    

88

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    32995    145    18    

51

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10430    10    4    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kraynev-navi 683 03.09.15 14:32 Сейчас в теме
Если есть хотя бы минимальный интерес - продолжу.

Why not?!
2. dgolovanov 03.09.15 15:11 Сейчас в теме
Мне в SQL надо создать временную таблицу с данными из 1С. Как это можно сделать, кроме генерации кода запроса с указанием текстом данных из 1С и выполнения его в SQL? Спасибо.
5. Danila-Master 118 04.09.15 08:16 Сейчас в теме
(2) dgolovanov,
Можно использовать WITH
Пример:
--Создание временной таблицы
WITH TimeTable([Поле1], [Поле2]) AS (SEL ECT [Поле1], [Поле2] FROM [БазаДанных].[dbo].[Таблица])

-- Выборка из временной таблицы
SELECT TT.Поле1, TT.Поле2 FR OM TimeTable AS TT

Как то так.
dgolovanov; +1 Ответить
6. alexandr.blinov 122 04.09.15 12:28 Сейчас в теме
(2) dgolovanov,
данные в 1С могут быть разбросаны по разным таблицам. Получать, фильтровать и сводить их может оказаться нетривиальной задачей. Я бы делал запросом.

(4) Идальго,
на текущий момент данная статья в закладках у 14 человек (плюс исходная шпаргалка, которую я использую). Эти 15 человек, очевидно, ответили на Ваш вопрос отрицательно.
7. dgolovanov 04.09.15 17:03 Сейчас в теме
(6) а если данные хранятся в ТЗ?
3. 3.14159 94 03.09.15 15:35 Сейчас в теме
не увидел DROP DATABASE
i1381215@trbvm.com; ElektronHM; Aleksey.Bochkov; suggestive; fvadim; +5 Ответить
4. Идальго 238 03.09.15 22:03 Сейчас в теме
Не поймите не правильно, но разве какой-нибудь справочник по SQL (даже вот хотя бы for dummies) не будет более удобен и систематизирован чем описание синтаксиса в статьях на ИС?
xzorkiix; tigra378; cleaner_it; +3 Ответить
8. Andrefan 09.09.15 09:37 Сейчас в теме
Плюсую. Я ЗА идею. Буду ждать продолжения
9. ediks 337 09.09.15 15:28 Сейчас в теме
Кому-то удобно пользоваться шпаргалкой, кому-то статьей. Каждому свое.
Сам предпочитаю пользоваться W3Schools.
Yan_Malyakov; Award; +2 Ответить
10. Yers 11.09.15 18:48 Сейчас в теме
Поддерживаю, полезная информация в работе.
11. zekrus 151 20.07.17 13:17 Сейчас в теме
Добрый день!
Тема весьма актуальная.
Я год назад заполнил прямым запросом в 1С координаты GPS клиентов из адресов с maps.yandex.ru...
На собеседовании один раз слышал такой вопрос:
- Приведите примеры оптимизации кода 1С (с анализом в маршрута запроса в SQL).
С уважением
Оставьте свое сообщение