Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all 7251 articles
Browse latest View live

Пропадают бэкапы. Как так?

$
0
0
Привет, мальчики.


Делаю бэкап, а он исчезает.

Profiler всегда свернут

$
0
0
Доброго времени суток!
То ли после обновления винды (Windows 10 Домашняя), то ли после еще чего с профайлером
приключилась беда: он все время свернут и развернуть ее на весь экран не получается (Рис1)
Насколько я понимаю, профайлер - это часть Management Studio 2016 (13.0.16100.1)
Как выкурить его из свернутого положения - нужно переустанавливать студию или есть способ проще?

Создание базы работа с ней ошибка Не удалось найти базу данных с идентификатором

$
0
0
SQL server 2014 12.0.5203.0 64x
установлены все обновления.
Процесс:
хранимка внутри которой
удаляется база (выполнено)
Создаётся новая (выполнено)
создаются таблицы (ошибка)
use [ShellData_tmp]
if(not EXISTS(select * from sys.tables where name='indata_text'))
begin
create table dbo.indata_text ( .....

..... база отдаётся клиенту
Сообщение 615, уровень 21, состояние 1, строка 152
Не удалось найти базу данных с идентификатором 65 и именем "65". Возможно, база данных находится в режиме "вне сети". Подождите несколько минут и повторите попытку.

если смотреть в select * from sys.databases
то базы с этим идентификатором в принципе нет
база с которой идёт работа имеет иной идентификатор
работа с ней после ошибки нормальная
если смотреть статус этой базы по имени между созданием базы и выполнением запросов то статус online
но её идентификатор
select DB_ID(@DB_name)
48

зачем ему нужна несуществующая база и кем она была до этого я уже не знаю, как я писал сейчас такой базы нет.

перезапуск скрипта приводит к тому же, он видимо где то запомнил - быть может старый идентификатор, как его обновить?

причём только что я выполнял эту процедуру и вот она ломается.
помогает только перезапуск sql server.
до такого состояния он доходит раз в пару дней.

Что еще можно придумать чтоб быстро собирать данные по 14 базам?

$
0
0
У меня 5 серверов mssql (10,11 и 13) и на них есть 14 баз.
Мне надо в каждой базе запустить вот такой запрос:
SELECT
	'ООО "СЕРВИС"'  Организация,
	СкладКомпании._Description Склад,
	CASE
	WHEN Заказ._Number  is not null THEN   'Заказ покупателя № '+ Заказ._Number + ' от 'ELSE 
	'Внутренний заказ № '+ ЗаказВнутр._Number + ' от 'END ИмяДокумента,
	CASE
	WHEN Заказ._Number  is not null THEN Заказ._Date_Time ELSE 
	ЗаказВнутр._Date_Time END ДатаЗаказа,
	CASE
	WHEN Контрагент._Description is not null THEN
	Контрагент._Description ELSE Подразделение._Description end Контрагент, 
	Ном._Fld1139 Артикул,
	ОстаткиРезервов._Fld8533 Заказано,
	ОстаткиРезервов._Fld8534 Резерв
	FROM
	 [alfa5_as].[dbo]._Reference68  AS Ном 
	LEFT OUTER JOIN [alfa5_as].[dbo]._AccumRgT8545 as ОстаткиРезервов On ОстаткиРезервов._Fld8530RRef = Ном._IDRRef
	LEFT OUTER JOIN [alfa5_as].[dbo]._Reference59 Контрагент      On ОстаткиРезервов._Fld8528_RRRef = Контрагент._IDRRef
	LEFT OUTER JOIN [alfa5_as].[dbo]._Document162 Заказ           On ОстаткиРезервов._Fld8529_RRRef = Заказ._IDRRef
	LEFT OUTER JOIN [alfa5_as].[dbo]._Reference74 Подразделение   On ОстаткиРезервов._Fld8528_RRRef = Подразделение._IDRRef
	LEFT OUTER JOIN [alfa5_as].[dbo]._Document159 ЗаказВнутр      On ОстаткиРезервов._Fld8529_RRRef = ЗаказВнутр._IDRRef
	LEFT OUTER JOIN [alfa5_as].[dbo]._Reference92 СкладКомпании   On ОстаткиРезервов._Fld8532RRef = СкладКомпании._IDRRef
Where (case when @Article = '' then @Article else Ном._Fld1139  end) = @Article 
and ОстаткиРезервов._Period > CAST('5999-10-01 00:00:00.000' as datetime) 
and (ОстаткиРезервов._Fld8534 > 0 or ОстаткиРезервов._Fld8533 > 0 )


1. Сначала я сделал представление (0назавем локальное) на каждом сервер по всем базам (без параметра @Article конечно).
И еще одно представление чтоб собирала в одну таблицу результат из всех локальных представлений.
А потом уже применял на это Where Ном.Артикул = @Article
2. Пробовал сделать функцию по тому же принципу, но оказалось нельзя вызывать функции со связного сервера, возвращающие таблицы.
3. Сделал функцию со всеми Селктами по всем связанным серверам.

В итоге Первый вариант медленный, воторой не работает, а третий еще медленней чем первый!

Как еще можно решить такую задачу? Какие еще варианты решения есть?

Требуется видеть остатки онлайн.

Вычисление опытных риэлторов

$
0
0
+
Картинка с другого сайта.

Подскажите триггер, чтобы в столбе агенты у одного из агентов поле опыт становилось равным единице, если кол-во его сделок превышает 5 допустим.

Обновление нескольких миллионов строк - как бы запросик ускорить?

$
0
0
День добрый,
предположим есть 2 таблицы:
create table Target_table (
	key_field varchar(50),
	other_field nvarchar(10));

create table Source_table (
	key_field varchar(50) primary key,
	other_field nvarchar(10));

На первой стоит колоночный индекс, поле key_field НЕ уникальное. Есть некластеризованный индекс на поле key_field.
На второй стоит кластеризованный индекс на поле key_field.

Выполняю команду Merge, чтобы обновить данные в первой таблице из второй таблицы:
merge Tareget_table as Target
using (select key_field, other_field from Source_table) as Source
on (Target.key_field = Source.key_field)
when matched then update set Target.other_field = Source.other_field;

Проблема в том, что количество записей очень большое - миллионы. Команда может выполняться больше часа.
Есть ли способ ускорить это дело?

спасибо.

DatabaseMail

$
0
0
Добры день.

Изредко начали пропадать маилы, в логах видно что около часа сыпятся события:
The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2017-06-12T10:34:52). Exception Message: Cannot send mails to mail server. (The operation has timed out.).

Когда маилы выходят то все чисто и стандартно раз в 10 минут рестартует себя сервис.
С сетью все гормально, почта в облаке майкрософта и доступна в моменты проблем на сервере.

Зачем делают два секондари?

$
0
0
допустим есть AAG
один секондари нужен для высокой доступности
зачем делают второй секондари? можно бекапы на нем делать, можно для отчетов использовать вместо репликации
для чего еще?

Hardware Security Module и репликация

$
0
0
Есть мысль использовать Hardware Security Module для шифрования некоторых данных в БД.
БД реплицируется. Есть ли какие-то особенности в использовании HSM при репликации, кто-нибудь с ними сталкивался?

Select в одну строку

$
0
0
SELECT SENT, RECEIVED FROM DATES WHERE ID_SERIAL=@Id ORDER BY Sent DESC, RECEIVED DESC
Как сделать запрос что бы sent и received было в одну строку без null значений

Натуральная сортировка

$
0
0
Добрый день. Прошу консультации по следующей проблеме:
имеется массив, содержащий в себе след. значения:
1.3.1.1.1
1.3.1.1.10
1.3.1.1.2
1.3.1.1.3
1.3.1.1.4
1.3.1.1.5

Выборка осуществляется следующим путем:
select
,data.number
from #result data

Каким образом использовать order by, чтобы получить результат:
1.3.1.1.1
1.3.1.1.2
1.3.1.1.3
1.3.1.1.4
1.3.1.1.5
1.3.1.1.10

Пытался по-разному, но что-то не учитываю.
Заранее благодарю за ответ.

Сравнение значений двух таблиц

$
0
0
Добрый день, у меня есть две таблицы, условно a и b, нужно сравнить значения(цифры) в двух таблицах,достаточно больших, и вывести значения первой таблицы, которых нет во второй. Скажите какой метод можно использовать?

Диагоностика Сервера и Баз данных!

$
0
0
Подскажите где я могу запустить проверку на ошибки, предупреждения и т.п. для сервера в ПО "sql server management studio 2012"
т.е. мне надо узнать все проблемы, которые присутствую на сервере и в БД.
например, по индексам.

Так как некоторое время назад запросы в базе начались обрабатываться медленно пример 1 минута, а изначально где то пол года назад на обработку запроса уходила сек 10

вот хочу увидеть, что мне скажет sql server какие проблемы на сервере

Как отбросить лишние данные в данном запросе

$
0
0
Добрый день,

Ниже 2 результата выборки.

select 1

product somecolumn somecolumn2 box

0001 somevalue1 anothersomevalue1 012345
0001 somevalue2 anothersomevalue2 012345
0001 somevalue3 anothersomevalue3 012345
0002 somevalue4 anothersomevalue4 654321
0003 somevalue5 anothersomevalue5 654321
0004 somevalue6 anothersomevalue6 654321
0005 somevalue7 anothersomevalue7 654321
0006 somevalue8 anothersomevalue8 654321

select 2

box product somecolumn somecolumn2

0001 somevalue1 anothersomevalue1 012345
0001 somevalue2 anothersomevalue2 012345
0001 somevalue3 anothersomevalue3 012345


Как получить select 2 из select1.

Необходимо вывести только те данные, где в коробке находится только 1 тип товара т е по одному коду, тем самым отбросив те коробки, где расположено больше, чем одного товара.

Пробовал обыграть через partition by и Count() - что -то не вышло

Как это сделать?

Преобразование типа данных varchar в тип данных datetime. Опять.

$
0
0
SQL 2012

Запрос:

SELECT бла-бла-бла (NEXT_RUNTIME_TS <= {ts '2017-06-16 09:50:07'}) 


Параметры сессии с Profiler'а:

set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions on
set language русский
set dateformat ymd
set datefirst 1
set transaction isolation level read committed


И, вы не поверите:

[ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона..

sqlclr: fn_WriteXML - кошерно ли ?

$
0
0
Сделал фунуцию для выгрузки XML в файлы (каждый в xml в отдельный файл)
Но есть вопрос, насколько кошерно использоваьть sqlclr функцию для записи в файл?
Можно сделать и процедуру, но её придётся вызывать в цикле, а функцию можно прямо в селекте.

Буду благодарен за предмерную критику и советы.

<SqlFunction(Name:="fn_WriteXML", Isdeterministic:=False, IsPrecise:=False)> _
Public Shared Function fn_WriteXML(Value As SqlXml, FullFilePath As SqlString) As SqlBoolean

        If Value.IsNull Then
            Return New SqlBoolean(False)
        Else
            Using fs As New IO.FileStream(FullFilePath, IO.FileMode.CreateNew)
                Dim bytes() = System.Text.Encoding.UTF8.GetBytes(Value.Value)
                fs.Write(bytes, 0, bytes.Length)
            End Using
            Return New SqlBoolean(True)
        End If
End Function

<SqlFunction(Name:="fn_ReadXML", Isdeterministic:=False, IsPrecise:=False)> _
Public Shared Function fn_ReadXML(FullFilePath As SqlString) As SqlXml
        If FullFilePath.IsNull Then
            Return New SqlXml
        ElseIf IO.File.Exists(FullFilePath) Then
            Dim ds As New DataSet
            ds.ReadXml(FullFilePath)
            Dim ms As New IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(ds.GetXml))
            Return New SqlXml(ms)
        Else
            Return New SqlXml
        End If
End Function

Околопятничный вопрос DB INTO RAM

$
0
0
Положим, меня юзеры замучали, что им медленно, а писать оптимальные запросы не позволяет политика руководства.
Зато политика руководства позволяет закупить дофигалион гб оперативки.

ВОПРОС: как на уровне сервера форсировать "заливку" самых горячих таблиц внутрь оперативки? Такое вообще возможно?

В согласованном ли состоянии будет БД при бэкапе всей виртуалки на которой SQL Server

$
0
0
Привет, мальчики.


Есть виртуалка.

На ней маленькая БД.


Админы бэкапят всю виртуалку без остановки виртуалки.




Скажите БД при востановлении всей виртуалки откроется ли?

CHECKPOINT блоккирует сервер.

$
0
0
Добрый день.

Пытаюсь сделать

dbcc checktable('my_table')


но процесс со статусом BACKGROUND и командой CHECKPOINT блоккирует проверку таблицы.




Подскажите, сколько CHECKPOINT обычно выполняется и нормально ли то что он блоккирует проверку таблицы?

Как удалить строку в таблице в Managment Studio?

$
0
0
Есть MSSQL 2008, нужно самым простым способом удалить строку в таблице через Managment Studio
Выбираю строку, в Edit> Delete не активно..
Что могу не так делать?
Viewing all 7251 articles
Browse latest View live