Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: На каком то уровне идёт блокировка получения данных с MSSQL

Добрый день.

По непонятным причинам перестала работать десктопная программа, залипает, по первым тестам отсутствовала связь с MSSQL. Но при этом базу "видит".. стал разбираться.. запросы с небольшим количеством возвращаемых записей проходят нормально, как только записей много, просто "липнет"... например "SELECT TOP 10 * FROM Table" - проходит, а "SELECT TOP 100 * FROM Table" уже нет.

Для связи программы с базой используется интернет + vpn (т.е. не "локалка"). Программа не работает только у одного клиента, у всех остальных всё "ок".

Сам сервер "пингуется" и даже большими пакетами по 40000 байт... Интернет провайдер говорит: "ничего не меняли, проблема у Вас".


Подскажите, какие способы можно попробовать, чтоб диагностировать проблему?
Ответ: Игорь_UUS,

поставьте сетевой сниффер, смотрите на предмет ретрейнов, потери пакетов.
Вопрос: Написание программы на VisualBasic для получения данных из SQL

Доброго времени суток!
При работе с SQL часто использую скрипты которые написаны мной же (некоторые не без вашей помощи), и вроде не было потребности даже создавать оболочку, но в какой то момент понял, что бы с этими скриптами смогли работать люди которые не имеют ничего общего с SQL (хотя я наверное тоже нахожусь в их списке)), необходимо создать оболочку с визуально простым интерфейсом для получения данных из SQL.
И вот тут опять таки не обойтись без вашей помощи, прошу порекомендовать на каком языке лучше программировать, и быть может есть у кого то примеры кода для получения данных из SQL через программную оболочку. И даже рассматриваю такой момент как репетиторство через удаленный доступ и тд. и тп. на платной основе.
Ответ: ArtyLyght,


В .NET есть технология генерации ORM слоя -- EntityFramework. Если кратко, то она генерит обертки для всех ваших объектов бд и вы можете вызвать хранимую процедуру например просто как функцию на .NET. Или забрать данные в массив написав подобие SELECT прямо в .NET (LINQ, LINQ TO SQL).
Вопрос: Эмуляция блокировки в базе данных MSSQL

Здравствуйте.

Подскажите пожалуйста самый простой T-SQL запрос, который сможет искусственно вызвать блокировку на уровне строк таблицы.
Ответ: Типа, прочитать про locking hints
Вопрос: Как ускорить работу View (в MsSql)?

Здравствуйте.

Попробую словами, без кода, объяснить свою проблему.
Есть бизнес - объект, называемый Order. Каждый его экземпляр хранится в строке таблицы Orders.
В нем около 150 полей, значительная часть (около половины) из которых - это id элементов справочников (перечислений).
Чтобы сделать объект "доступным для отображения" есть View, которая называется OrdersView.
Исторически сложилось, что в самом начале в объекте было гораздо меньше полей,
потом новые поля добавлялись в объект, в таблицу(как NULLable поля) и во View (как LEFT OUTER JOIN).
И по всему этому хозяйству надо делать всякие сложные поиски, которые формулируются в терминах полей,
которые выдает View.
Со временем, по мере увеличения кол-ва полей, кол-ва справочников и кол-ва записей в таблицу Orders -
поиск работал все более медленно. В попытках ускорить его я попытался построить индексы по полям View.
И столкнулся с тем, что для View, использующего Left Outer Join - это невозможно
(получаю ошибку "Cannot create index on view "Test.dbo.OrdersView" because it uses a LEFT, RIGHT, or FULL OUTER
join, and no OUTER joins are allowed in indexed views. Consider using an INNER join instead.").

Теперь у меня есть несколько выходов, я вижу такие:
1) отказываеться от использования Left Outer Join (что фактичеси потребует, чтобы у меня в строках таблицы не было
NULL - значений, ну и вообще потребует некоторого изменения логики на уровне извлечения и записи данных).

2) перейти на базу данных, которая не обладает таким странным ограничением на одновременное использование LEFT OUTER
JOIN и индексирование полей View (например, на одну из версий Oracle)

3) Отказаться в этой задаче от реляционной базы вообще, и использовать какую нибудь нереляционную, например, MongoDB.
Фактически этот объект Order - это документ, у которого много полей. Похоже на то, что его удобно хранить в
документно - ориентированной базе.

Как Вы посоветуете мне решать эту проблему - хранения вообще и медленного поиска в частности?
Любой Ваш совет будет принят с благодарностью.
Ответ:
a_voronin
хмхмхм
пропущено...


Да, я в курсе, только вы попробуйте создать columnstore индекс на 100+ колонок в операционной таблице, в которую постоянно идет вставка (OLTP) и посмотрите на производительность.


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



еще осталось только nosql неофиту посоветовать, и будет полный набор базвордов. 
Вопрос: Отправка http запроса из MSSQL сервера 2008

Добрый день коллеги.
Есть задача классифицировать адреса в базе данных MSSQL. Выбрано решения стороннего сервиса имеющего свое API. Разовое классифицирование будет сделано обработкой загруженной на сервер выгрузке в файле. Моя задача посредством API http запроса возвращающего либо xml либо json формата ответа обновлять новые поступающие в систему данные. Частота уровня ежедневного джоба.

1) Какими инструментами лучше организовать такой процесс ? Пока нагуглил только CLR процедуру. Но беда что я лучше знаю яву чем C#. Буду благодарен вариантам.
2) можно ли при помощи DTS пакета организовать такой процесс ? Я не нашел источника web запроса.
Ответ: спасибо всем кто ответил. Полдня изучал варианты решения и Ваши комментарии подтверждают мои не уверенные выводы.
[quote автор][/Я реализовал это через HttpConnection и Script Task, но пришлось немного покодить.
Наверно вам проще загружать XML локально через запрос по HTTP, а потом его обрабатывать. quote]
Да . уже накидал примерно проект с HttpConnection и сейчас примусь за кодерство. Загружать XML думаю смысла нет. предполагается работа запроса валидации 1го адреса и ответ по нему XML сразу сохранять в базу распарсив.

автор
Вот вам блок работающего кода

большое спасибо. С него и начну. По воле кривой дорожки карьеры получил навыки MSSQL и Java потому не хотел ввязываться в C# или VB .NET.
Вопрос: Интеграция Firebird и MSSQL Server

Здравствуйте.
В ходе работы на проектом возникла следующая задача. В процессе выполнения хранимой процедуры в БД Firebird 2.5 x64 необходимо следующее.
1. Выполнить хранимую процедуру в БД MSSQL Server 2008 и возвращаемый ей набор данных положить во временную таблицу Firebird либо в MemoryDataset (этот вариант предпочтительнее с точки зрения быстродействия). Эти данные должны быть доступны только внутри этого вызова хранимой процедуры Firebird и после завершения занимаемая им память должна быть освобождена.
2. В случае MemoryDataset произвести один или несколько проходов по этому датасету для формирования итогового набора данных и его возврата (suspend) в клиентское приложение.

Вариант с подключением к MSSQL через компоненты FireDAC или ADO отпадает так как стоит сверх-задача сделать получение данных из MSSQL прозрачным с точки зрения клиентского приложения, которое "заточено" на работу с Firebird.

Прошу поделиться мнениями, идеями и ссылками. Ответ "не возможно" не принимается. Позади Сибирь.
Ответ:
Ivan_Pisarevsky
Вариант "все данные в базе ФБ" не рассматривается?

Ну, у них же там "данные в MS SQL меняются в реальном времени". Очевидно, что это делается
приложением ТСа, который смог заставить его работать только с MS SQL.

Почему нельзя переточить "приложение заточенное на Firebird" под MS SQL - непонятно,
вероятно, оно купленное без исходников.

Posted via ActualForum NNTP Server 1.5

Вопрос: Быстрый просмотрщик Баз данных MSSQL, окна )

Могу сделать сам, но лень тратить время и, скорее всего, конструировать велосипед... )

Что есть:
около сотни одинаковых БД MSSQL (т.е. одна и та же структура но разные данные) - формат .mdf + .ldf

Нужно что-то вроде следующего софта:
указываешь папку с файлами БД, они грузятся в контрол (list/grid), выбираешь любую в этом контроле - она аттачится и выполняет твой запрос, типа "Select TOP 100 * from MainTable", смотришь данные в отдельном гриде...
Ответ:
Nomix
vanezy
Nomix,

В SSMS можно один запрос сразу по пачке баз/линкед серверов запустить по моему, результат как то в гриде разделяется,
так можно и по 100 запустить и посмотреть быстро

Спасибо, немного не то, но посмотрю.

Тут вопрос скорее не в сложности, а в том, может кто делал/попадалось. Понятно, что кода максимум часа на 2, и скорее всего в основной софт надо будет встроить...


То, чего так жаждал тредстартер умел и умеет MS Access .ADP.
Т.е. тычем палЪцем в файл - он бойко подключает файл к локальному экземпляру MS SQL и... профит!
Видны усе таблички и процедурки, но... сказать что шибко удобнее, чем SSMS - на любителя.

ЗЫ. Смотреть базу MS SQL без MS SQL сервера - это фантастика, сынок.
Вопрос: Firebird, PostgreSQL, MsSql, Oracle

Блин, какие доводы можно привести, чтобы выбрать MSsql express?
Не хочу разбираться с этими Firebird, PostgreSQL, Oracle.
Надеюсь на вашу помощь)



Модератор: Тема перенесена из форума "Microsoft SQL Server".
Ответ: еще mssql единственный тут, кто может работать в режиме блокировачника, все остальные только версионники.
Вопрос: Как восстановить лог базы данных MSSQL 2008

Добрый день,

к сожалению произошло тотальное заражение компьютера (все файлы были зашифрованы). Удалось дешифровать все, но при попытке поднять инстанс Sharepoint выдается исключение:

An error occurred while processing the log for database 'Приложение_службы_поиска_DB_b7cf1422f5a54bd887d5a46aa8cdf229'. If p
ossible, restore from backup. If a backup is not available,

Бэкап оказался недоступен для этой базы. Подскажите пожалуйста как восстановить журнал этой базы.

MSSQL 2008 R2, Sharepoint 10.
Ответ: o-o,

Это дефект копирования через RDP возможно
Вопрос: Получение данных порциями с сортировкой по нескольким столбцам

Всем привет!
Например есть таблица
CREATE TABLE dbo.table1 
(
  id INT IDENTITY
 ,col1 VARCHAR(20) NOT NULL 
 ,col2 DATE NOT NULL
 ,col3 INT NOT NULL
 ,CONSTRAINT PK_table1_id PRIMARY KEY CLUSTERED (id)
)

В ней 10К записей.
Небольшой программкой на Delphi принимаю данные запросом
SELECT * FROM dbo.table1 ORDER BY col3 DESC,col2 DESC,col1 DESC

напрямую, без ADO. Запрос тянет все данные из таблицы. С увеличением данных ожидаемо растет время получение данных.
Как можно сделать симуляцию постраничности? разделить на блоки. Ведь я не могу использовать конструкцию
WHERE ID >= X AND ID <= Y

где например Х=50, а Y=80 из-за определенной сортировки.
Есть вариант, создавать отдельную таблицу и помещать туда отсортированные записи, где col2 > xx-xx-xx
Какие можно еще решить вопрос порции данных с определенной сортировкой?
Ответ:
SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department
ORDER BY DepartmentID 
    OFFSET 10 ROWS
    FETCH NEXT 10 ROWS ONLY;