HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

вопрос про запрос в Mssql
  #1  
Старый 24.10.2007, 21:54
ShAnKaR
Постоянный
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме:
4646474

Репутация: 1424


Отправить сообщение для ShAnKaR с помощью ICQ
По умолчанию вопрос про запрос в Mssql

как вывести в одну строчку данные из нескольких запросов:
тоесть я понимаю что можно так:
Цитата:
select (select name from tabl where id=1)+(select name from tabl where id=2)+(select name from tabl where id=3)
но можно както сократить чтоб базе меньше напряга было?
PS запросы все одинаковые меняется только ID. спасибо.
 
Ответить с цитированием

  #2  
Старый 24.10.2007, 22:27
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

Репутация: 119
По умолчанию

можно сделать так к примеру
Код:
select name from tabl where id=1 or id=2 or id=3
 
Ответить с цитированием

  #3  
Старый 24.10.2007, 22:33
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

Цитата:
select name from tabl where id=1 or id=2 or id=3
select name from tabl where id=1 and id=2 and id=3
 
Ответить с цитированием

  #4  
Старый 24.10.2007, 22:42
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

Репутация: 119
По умолчанию

Цитата:
Сообщение от [ cash ]  
select name from tabl where id=1 and id=2 and id=3
так запрос ничего не найдет, id же не может сразу три значения принимать нужно делать через or
 
Ответить с цитированием

  #5  
Старый 24.10.2007, 23:59
ShAnKaR
Постоянный
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме:
4646474

Репутация: 1424


Отправить сообщение для ShAnKaR с помощью ICQ
По умолчанию

нет вы непоняли вот посмотрите что делает запрос который я привел- он не выводит несколько рядов! он выводит один ряд. просто меня интересует можно ли както менее нагружать сервер чтоб вывести тиа того кк если б было select name from tabl where id=1 or id=2 or id=3 потом те записи которые выдает этот запрос пихались в одну строчку и выводились как результат.
 
Ответить с цитированием

  #6  
Старый 25.10.2007, 15:58
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

Репутация: 119
По умолчанию

Проще ты никак не сделаешь, чтобы менее нагружать базу и не делать кучу идентичных запросов, лучше сделать один а там его уже просто правильно обработать и подать ответ на экран в том виде каком надо, но обрабатывать нужно уже не средствами mssql.
 
Ответить с цитированием

  #7  
Старый 25.10.2007, 16:41
ShAnKaR
Постоянный
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме:
4646474

Репутация: 1424


Отправить сообщение для ShAnKaR с помощью ICQ
По умолчанию

Цитата:
Сообщение от ant0ha  
Проще ты никак не сделаешь, чтобы менее нагружать базу и не делать кучу идентичных запросов, лучше сделать один а там его уже просто правильно обработать и подать ответ на экран в том виде каком надо, но обрабатывать нужно уже не средствами mssql.
а средствами mssql ни как нельзя?
 
Ответить с цитированием

  #8  
Старый 24.10.2007, 22:36
halkfild
Постоянный
Регистрация: 11.11.2005
Сообщений: 391
Провел на форуме:
7084941

Репутация: 2277
По умолчанию

что именно тебе надо? если ты хочешь вывести все где разные ид то сделай
Цитата:
select name from tabl group by id
или тебе ножно это все вернуть в одной строке?

и насчет ид они ограничены или тебе нужны все?
 
Ответить с цитированием

  #9  
Старый 24.10.2007, 22:37
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

=) если все то
select name from tabl =)
да поясни маску по которой должны выводиться запросы.
 
Ответить с цитированием

  #10  
Старый 25.10.2007, 23:26
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме:
804931

Репутация: 526
По умолчанию

Цитата:
Сообщение от ShAnKaR  
....чтоб базе меньше напряга было?
спасибо.
Впринципе СУБД особого напряга от такого и нет, если мы говорим о стандартных СУБД работающих с жестким диском (а мы о них и говорим, так как mssql ей является ) а не о новомодных СУБД, в основном размещающих данные в оперативке
А дело тут вот в чем.
Основные временные затраты связаны с дисковыми операциями. При запросе какой-либо записи, эта запись ищется на диске, и считывается не одна эта запись а страница (обычно даже несколько страниц), которая размещается в оперативке
(прим. Страницей называется минимальная порция данных, считываемых с диска за одну дисковую операцию. В mssql, если мне не изменяет память, страница в стандарте равна 8 кб).
И вот - дальше уже работа идет не с диском, а с оперативной памятью. То бишь если твои записи, которые ты вибыраешь были соседними (в пределах одной страницы например) - обращений к диску больше не будет, и на скорости/нагрузке это практически не скажется.

Последний раз редактировалось VDShark; 25.10.2007 в 23:30..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про Ip mr.The Болталка 12 18.10.2007 14:28
Вопрос по перехвату переписки icq через LAN F!$T Безопасность и Анонимность 17 23.09.2007 13:46
Про Mac - адрес вопрос Дрэгги Болталка 11 16.09.2007 15:54
Вопрос про права на чтение файлов на хостинге. ~EviL~ Уязвимости 4 15.09.2007 14:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ