Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: как улучшить скорость записи/чтения блобов?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
Я бы однозначно взял для таких данных нетранзакционную СУБД и, скорее всего, нереляционную.
12 янв 17, 16:48    [20099318]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1159
Владислав Колосов
Я бы однозначно взял для таких данных нетранзакционную СУБД и, скорее всего, нереляционную.


Посоветуете какую нибудь? Желательно api для .NET.

ЗЫ:
Может я фантазирую, было бы идеально организовать перенаправление данных, сохраняемых/читаемых в блоб столбец в эту самую СУБД.
Т.е. так, чтобы для клиетра выглядело, будто данные сохранены в SQL.

Знаете ли кто примеры таких скрещиваний?
12 янв 17, 17:09    [20099439]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
Alexander Us,

посоветовать не могу. т.к. всего лишь знаю о существовании таких СУБД :)
12 янв 17, 18:34    [20099780]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
С помощью CLR объектов можно организовать запись данных куда угодно, полагаю.
12 янв 17, 18:35    [20099791]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31912
o-o
организация этого дерева и есть узкое место.
Мне такие случаи всегда непонятны :-(
Если процессор не нагружен, то единственная причина этому - в коде есть некие ожидания.
Чего он ждёт, в красиво расписанном вами алгоритме поиска и чтения дерева? Делает чтение очередной страницы блоба, а потом там вставлена команда ожидания?
Диска ждёт? Диск в таких случаях тоже не нагружен - очередь пустая.
Загадка.
13 янв 17, 02:15    [20100835]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
o-o
Guest
o-o

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

С работы картинкой завешу, как же все замечательно, и никакой команды "подождать" не надо. Сплошное непроходящее PAGEIOLATCH_SH
13 янв 17, 07:57    [20100943]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
kjh
Guest
alexeyvg
o-o
организация этого дерева и есть узкое место.
Мне такие случаи всегда непонятны :-(
Если процессор не нагружен, то единственная причина этому - в коде есть некие ожидания.
Чего он ждёт, в красиво расписанном вами алгоритме поиска и чтения дерева? Делает чтение очередной страницы блоба, а потом там вставлена команда ожидания?
Диска ждёт? Диск в таких случаях тоже не нагружен - очередь пустая.
Загадка.

м.б. malloc + memcpy
13 янв 17, 08:04    [20100962]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31912
kjh
alexeyvg
пропущено...
Мне такие случаи всегда непонятны :-(
Если процессор не нагружен, то единственная причина этому - в коде есть некие ожидания.
Чего он ждёт, в красиво расписанном вами алгоритме поиска и чтения дерева? Делает чтение очередной страницы блоба, а потом там вставлена команда ожидания?
Диска ждёт? Диск в таких случаях тоже не нагружен - очередь пустая.
Загадка.

м.б. malloc + memcpy
Эти функции не переводят процессор в состояние ожидания (не отдают время процессу Idle)
13 янв 17, 09:23    [20101209]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
kjh
Guest
А Remote BLOB Storage (RBS) не подойдёт для блобов ?

https://technet.microsoft.com/ru-ru/library/ee748649.aspx#Section2
13 янв 17, 11:25    [20101809]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1159
kjh
А Remote BLOB Storage (RBS) не подойдёт для блобов ?

https://technet.microsoft.com/ru-ru/library/ee748649.aspx#Section2

Спасибо, почитаю.
13 янв 17, 11:59    [20102014]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
https://msdn.microsoft.com/library/hh461480
Выдержка из документации о Filestream:

• Размер данных. По результатам исследования, представленного ниже в этом техническом документе, большие двоичные объекты размером менее 256 КБ (например, значки мини-приложений) лучше хранить в базе данных, а большие двоичные объекты размером больше 1 МБ — вне базы данных. Для объектов размером 256 КБ между 1 МБ выбор оптимального способа хранения зависит от соотношения операций считывания и записи данных и скорости «перезаписи».
13 янв 17, 12:33    [20102240]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Alexander Us,

Секционировать таблицу по некому признаку позволяющему разделить загрузку на несколько потоков, лить параллельно в несколько stage таблиц, потом с помощью merge прицеплять их в основной таблице.
13 янв 17, 12:51    [20102333]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
aleks2
Guest
kjh
А Remote BLOB Storage (RBS) не подойдёт для блобов ?

https://technet.microsoft.com/ru-ru/library/ee748649.aspx#Section2

Ужос то какой!

Не проще ли FileTable?
+ копировать нетранзакционно, средствами файловой системы.
13 янв 17, 15:17    [20103288]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1159
aleks2
Не проще ли FileTable?


Выглядит вкусно, но это с 2012 а у меня 2008.
13 янв 17, 16:13    [20103632]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1159
Всем спасибо!

Учтиывая староватую версию сервера, первым делом попробую RBS.
Если кому интересно, сравнение методик хранения блобов, тесты:

Сравнение параметров для хранения больших двоичных объектов (SQL Server)

SQL Server Remote BLOB Store and FILESTREAM feature comparison

RBS Performance Results
13 янв 17, 18:04    [20104110]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
kjh
Guest
http://download.microsoft.com/download/9/5/2/9521D8DA-5D3C-4817-BB9D-B5B1BD293365/SQL_Server_2008_R2_Remote_Blob_Storage.docx
Remote BLOB Storage
SQL Server White Paper

http://download.microsoft.com/download/0/9/4/0947BFC2-9942-4365-ACAE-CEC9C7958E66/FILESTREAMStorage.docx
Техническая статья по SQL Server
FILESTREAM

http://www.osp.ru/winitpro/2012/04/13016783/
Так BLOB или не BLOB?
13 янв 17, 20:30    [20104376]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
o-o
Guest
alexeyvg
o-o
организация этого дерева и есть узкое место.
Мне такие случаи всегда непонятны :-(
Если процессор не нагружен, то единственная причина этому - в коде есть некие ожидания.
Чего он ждёт, в красиво расписанном вами алгоритме поиска и чтения дерева? Делает чтение очередной страницы блоба, а потом там вставлена команда ожидания?
Диска ждёт? Диск в таких случаях тоже не нагружен - очередь пустая.
Загадка.

вот обещанная картинка для alexeyvg,
извиняюсь за задержку.
перелив таблицы с ntext-ом,
ожидания на чтении страниц текстового дерева.
20 минут, как переливает, но это удовольствие где-то на час.
всего 2 млн строк, чуть меньше 8Гб.
как закончится, вывесу статистику по времени и числу чтений

К сообщению приложен файл. Размер - 87Kb
17 янв 17, 15:28    [20114774]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
o-o
Guest
для сравнения, полный бэкап базы в 2,4Тб (1,7Тб эффективных данных) идет 48 минут
17 янв 17, 15:37    [20114841]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
o-o
Guest
вот статистика выполнения.
72 минуты он ворочал 2 млн строк (ntext).
число чтений радует

К сообщению приложен файл. Размер - 40Kb
17 янв 17, 17:06    [20115339]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
o-o
Guest
для эксперимента сегодня копирую ту же таблицу, только без ntext-а.
19 секунд против часа с лишним, если копировать ntext.
таблица всего 8 Гиг, из них 7 это ntext.

К сообщению приложен файл. Размер - 18Kb
18 янв 17, 12:56    [20118051]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
o-o
Guest
извиняюсь, что никак не отстану от темы, но это ненормально.
вчера переливал другой человек и он вставлял в пустую кластерную таблицу
хоть и с таблоком, но это еще + сорт и полное логирование.
сегодня мне показалось, что если я перелью с таблоком в пустую кучу, оно выйдет быстрее.
как бы не так.
и это на пустом-то сервере!
сегодня на наше счастье всех выгнали на улицу торчать час,
как раз за это время поганый ntext перелился за 99 минут против 72 вчерашних.
ЧТО он читает по 100 раз?
56821408 страниц это 400 Гиг,
что за бред собачий, когда вся таблица 8 гиг?
не, ну не новость, что переливает эту таблицу за час с лишним,
но ведь 19 секунд все поля, за исключением текстовых

К сообщению приложен файл. Размер - 38Kb
18 янв 17, 14:42    [20118754]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
o-o,

судя по сравнению физ и лог, он многократно просматривает данные. Физ чтений на на 8 гиг примерно.
Может те самые "деревья"?
Просмотры зачем, сортировка? Модель восстановления простая, полагаю?
18 янв 17, 15:19    [20118927]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
o-o
Guest
Модель простая, но к чему бы такие чтения даже в полной?
Нет сортировки, вставка в пустую кучу.
С обеда приду, план тоже выведу из query stats
----
Что чтения рандомные, то мне понятно, и это минус на скорости.
Но чтобы читать по 100 раз одно и то же, это мне непонятно зачем
18 янв 17, 15:59    [20119136]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
kjh
Guest
o-o,

а что показывает

exec sp_configure 'max server memory (MB)'

?
18 янв 17, 17:20    [20119530]     Ответить | Цитировать Сообщить модератору
 Re: как улучшить скорость записи/чтения блобов?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
kjh
o-o,

а что показывает

exec sp_configure 'max server memory (MB)'

?

есть подозрения что сервер забывает что прочитал? и поэтому перечитывает 100 раз что бы наизусть выучить?
18 янв 17, 17:22    [20119538]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить