Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
DBAshnik
Member

Откуда:
Сообщений: 341
наваял (будучи без опыта в MsSQL но с многолетним в Оракл) аналог привычной конструкции (в Оракле вместо physloc есть rowid)

select 
 from someHuuuuuugeTable
 where %%physloc%% = ( select top 1 %%physloc%% from someHuuuuuugeTable );


Тормозит на десятки минут! :-( Да, таблица хоть и на много миллионов! Но в Оракле сие было бы доли секунды! ( т.к. доступ по rowid - он же физический адрес строки - самое быстрое что может быть в принципе!) . Что я тут не знаю / не понимаю??

(отдельно
select top 1 %%physloc%% from someHuuuuuugeTable 
идёт супер быстро! )
27 мар 19, 20:49    [21845452]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36686
DBAshnik
Но в Оракле сие было бы доли секунды!

Отвыкайте.
27 мар 19, 20:52    [21845453]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1172
DBAshnik,

могли бы план посмотреть, там все достаточно тривиально: будет скан всей таблицы + filter predicate

для больших объемов данных в MS SQL быстрым является только индексный поиск.
колонки %%lockres%%, %%physloc%% - виртуальные и индексными не в коей мере не являются.
27 мар 19, 21:13    [21845467]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
invm
Member

Откуда: Москва
Сообщений: 9114
DBAshnik
select 
 from someHuuuuuugeTable
 where %%physloc%% = ( select top 1 %%physloc%% from someHuuuuuugeTable );
Более того, данная конструкция может вообще ничего не вернуть.
27 мар 19, 21:51    [21845483]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
msLex
Member

Откуда:
Сообщений: 7724
DBAshnik
наваял (будучи без опыта в MsSQL но с многолетним в Оракл) аналог привычной конструкции (в Оракле вместо physloc есть rowid)

select 
 from someHuuuuuugeTable
 where %%physloc%% = ( select top 1 %%physloc%% from someHuuuuuugeTable );



Тормозит на десятки минут! :-( Да, таблица хоть и на много миллионов! Но в Оракле сие было бы доли секунды! ( т.к. доступ по rowid - он же физический адрес строки - самое быстрое что может быть в принципе!) . Что я тут не знаю / не понимаю??

(отдельно
select top 1 %%physloc%% from someHuuuuuugeTable 

идёт супер быстро! )

А чем сия чудесная конструкция отличается от просто select top 1 * from?
27 мар 19, 22:05    [21845489]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18323
DBAshnik,

%%physloc%% это не аналог rowid Оркала.

Наиболее близкое будет колонка
id bigint identity primary key clustered
28 мар 19, 09:49    [21845754]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30700
DBAshnik
Что я тут не знаю / не понимаю??
В сиквеле нету специальной конструкции для доступа по rowid

Как уже сказали:
Deff
Наиболее близкое будет колонка
id bigint identity primary key clustered
28 мар 19, 11:25    [21845883]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
DBAshnik,

по все очевидности, эта функция не предназначена для какого--либо другого использования, кроме того, в котором использована. Недокументированное и есть недокументированное и пенять на то, что это работает не так, как _Вы_ ожидаете, не следует.
28 мар 19, 11:44    [21845914]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
DBAshnik
Что я тут не знаю / не понимаю??
Чего мы не понимаем, так это зачем это вообще нужно? Приведите хоть один пример?
29 мар 19, 01:52    [21846704]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
DBAshnik
Member

Откуда:
Сообщений: 341
Mind
DBAshnik
Что я тут не знаю / не понимаю??
Чего мы не понимаем, так это зачем это вообще нужно? Приведите хоть один пример?


эээ, ну это был просто упрощённый пример! Оригинал планировался примерно таким:

select ...
 from someHuuuuuugeTable
 where %%physloc%% = ( select max( %%physloc%% ) from someHuuuuuugeTableX where "...not created by me..." );


вообщем тут динамическое прохождение по ряду из X таблиц с разной структурой с желанием найти в каждой из них последнюю вставленную строку (причем вставленную не мной, но это уже детали). Но конструкция с max() тормозит ещё круче. Вижу теперь, что physloc аналогом оракловскому rowid не является.
Всем спасибо!
29 мар 19, 11:40    [21846912]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
DBAshnik,

@@identity, ident_current().
29 мар 19, 12:22    [21846959]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
DBAshnik
последнюю вставленную строку
Какое это вообще имеет отношение к physical location?
Оракл что всегда вставляет в конец файла даже если в середине есть место?
29 мар 19, 19:41    [21847555]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
msLex
Member

Откуда:
Сообщений: 7724
Mind
DBAshnik
последнюю вставленную строку
Какое это вообще имеет отношение к physical location?
Оракл что всегда вставляет в конец файла даже если в середине есть место?
уточню, в конец последнего файла в группе.
29 мар 19, 20:15    [21847571]     Ответить | Цитировать Сообщить модератору
 Re: адски медленный доступ по physloc ! ( ораклисту это непостижимо! :-) )  [new]
DBAshnik
Member

Откуда:
Сообщений: 341
Mind
DBAshnik
последнюю вставленную строку
Какое это вообще имеет отношение к physical location?
Оракл что всегда вставляет в конец файла даже если в середине есть место?


ну не всегда, конечно, но в данном случае свободных мест нет. (т.к. есть только insert-ы, а ни update-ов ни delete-ов нетЪ! :-) )
1 апр 19, 11:03    [21848738]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить