Новые возможности T-SQL в MS SQL Server 2005
От: Гайдар Магдануров www.microsoft.com/rus
Дата: 07.10.05 15:12
Оценка: 285 (8)
Статья:
Новые возможности T-SQL в MS SQL Server 2005
Автор(ы): Гайдар Магдануров
Дата: 07.12.2005
Как я заметил, на RSDN не было еще статьи посвященной именно
T-SQL новшествам в SQL 2005. Думаю, эта статья будет интересна читателям
журнала.


Авторы:
Гайдар Магдануров

Аннотация:
Как я заметил, на RSDN не было еще статьи посвященной именно T-SQL новшествам в SQL 2005. Думаю, эта статья будет интересна читателям журнала.
Re: Новые возможности T-SQL в MS SQL Server 2005
От: Alex.Che  
Дата: 07.10.05 15:18
Оценка:
Привет, Гайдар!
Вы пишешь 07 октября 2005:

ГМ> Статья:

ГМ> Новые возможности T-SQL в MS SQL Server 2005
Автор(ы): Гайдар Магдануров
Дата: 07.12.2005
Как я заметил, на RSDN не было еще статьи посвященной именно
T-SQL новшествам в SQL 2005. Думаю, эта статья будет интересна читателям
журнала.


Рисунок отсутствует.

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re[2]: Новые возможности T-SQL в MS SQL Server 2005
От: Аноним  
Дата: 08.12.05 07:23
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Привет, Гайдар!

AC>Вы пишешь 07 октября 2005:

ГМ>> Статья:

ГМ>> Новые возможности T-SQL в MS SQL Server 2005
Автор(ы): Гайдар Магдануров
Дата: 07.12.2005
Как я заметил, на RSDN не было еще статьи посвященной именно
T-SQL новшествам в SQL 2005. Думаю, эта статья будет интересна читателям
журнала.


AC>Рисунок отсутствует.


AC>--

AC>With best regards, Alex Cherednichenko.

Огромное спасибо за информацию на русском
понравилось PIVOT а то сворачивание замучило

есть пара вопросов

1) можно ли использовать в критич приложениях версию EXPRESS в основном сильная нагрузка по запросам
не свалится ли он в out вместе со встроенной NET пока опыта мало вот и спрашиваю

2) как решается следующий вопрос (причем и для select и для update использую данный прием)
тоже пока в этом направлении мало опыта
есть таблица скажем с покупателями и заказами сделанными ими
пользователь выбрал 15 поставщиков и нужно найти по ним счета я применяю след подход
беру ID и делаю запрос вот так примерно

str1 = '10, 30, 32, 67, 87, 88'

SET str2 = 'SELECT from Orderds where ID_Customer IN (str1)'

EXECUTE @str2

а не хотелось бы динамический sql применять ???
Re[3]: Новые возможности T-SQL в MS SQL Server 2005
От: tpg Россия http://www.sql.ru/
Дата: 08.12.05 07:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>2) как решается следующий вопрос (причем и для select и для update использую данный прием)

А>тоже пока в этом направлении мало опыта
А>есть таблица скажем с покупателями и заказами сделанными ими
А>пользователь выбрал 15 поставщиков и нужно найти по ним счета я применяю след подход
А>беру ID и делаю запрос вот так примерно

А>str1 = '10, 30, 32, 67, 87, 88'


А>SET str2 = 'SELECT from Orderds where ID_Customer IN (str1)'


А>EXECUTE @str2


А>а не хотелось бы динамический sql применять ???



Массивы и Списки в SQL Server
Re: Новые возможности T-SQL в MS SQL Server 2005
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 08.12.05 08:21
Оценка:
Здравствуйте, Гайдар Магдануров, Вы писали:

ГМ>Статья:


ГМ>Инструкция TABLESAMPLE


В чем отличие от select top?
Вселенная бесконечна как вширь, так и вглубь.
Re[4]: Новые возможности T-SQL в MS SQL Server 2005
От: Аноним  
Дата: 08.12.05 15:09
Оценка:
Здравствуйте, tpg, Вы писали:

tpg>Здравствуйте, Аноним, Вы писали:


А>>2) как решается следующий вопрос (причем и для select и для update использую данный прием)

А>>тоже пока в этом направлении мало опыта
А>>есть таблица скажем с покупателями и заказами сделанными ими
А>>пользователь выбрал 15 поставщиков и нужно найти по ним счета я применяю след подход
А>>беру ID и делаю запрос вот так примерно

А>>str1 = '10, 30, 32, 67, 87, 88'


А>>SET str2 = 'SELECT from Orderds where ID_Customer IN (str1)'


А>>EXECUTE @str2


А>>а не хотелось бы динамический sql применять ???



tpg>Массивы и Списки в SQL Server<br />
<span class='lineQuote level1'>tpg&gt;</span>



спасибо посмотрю а что на счет 1) пункта или сразу посоветуете EnterPrise 2005 ????
Re: Новые возможности T-SQL в MS SQL Server 2005
От: freed Австралия  
Дата: 08.12.05 15:37
Оценка:
Толково.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Новые возможности T-SQL в MS SQL Server 2005
От: tpg Россия http://www.sql.ru/
Дата: 09.12.05 04:39
Оценка:
Здравствуйте, Аноним, Вы писали:

А>спасибо посмотрю а что на счет 1) пункта или сразу посоветуете EnterPrise 2005 ????


Зачем сразу? Попробовать надо...
По крайней мере у этой редакции никаких искуственных ограничений по конкурирующим запросам, как было в MSDE, нету.

Comparing SQL Server Express with MSDE
Re[3]: Новые возможности T-SQL в MS SQL Server 2005
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.12.05 06:28
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>1) можно ли использовать в критич приложениях версию EXPRESS в основном сильная нагрузка по запросам

А>не свалится ли он в out вместе со встроенной NET пока опыта мало вот и спрашиваю
Устанешь ты его в аут сваливать. Да, он ресурсоемкий, но устойчивость у него превосходная. Учти, что более тяжелые версии требуют и больше ресурсов для работы. Express специально проектировался с расчетом на использование как storage-движка, а не сервера приложений.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Новые возможности T-SQL в MS SQL Server 2005
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.12.05 06:28
Оценка: 3 (1)
Здравствуйте, Real 3L0, Вы писали:

R3>Здравствуйте, Гайдар Магдануров, Вы писали:


ГМ>>Статья:


ГМ>>Инструкция TABLESAMPLE


R3>В чем отличие от select top?

в том, что она возвращает не top.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Новые возможности T-SQL в MS SQL Server 2005
От: Аноним  
Дата: 09.12.05 08:07
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:


А>>1) можно ли использовать в критич приложениях версию EXPRESS в основном сильная нагрузка по запросам

А>>не свалится ли он в out вместе со встроенной NET пока опыта мало вот и спрашиваю
S>Устанешь ты его в аут сваливать. Да, он ресурсоемкий, но устойчивость у него превосходная. Учти, что более тяжелые версии требуют и больше ресурсов для работы. Express специально проектировался с расчетом на использование как storage-движка, а не сервера приложений.


SQL Server Agent и 2 GB могли бы оставить елки палки это ведь не промышленный сервер
понятно что устану просто не хотелось бы скажем чтобы через месяц работы он упал сказав что не хватает памяти после 1.01gb нагрузки

1) а как отключить NET и вообще стоит ли
2) какого лучше библиотеки использовать ADO.NET или SQL NATIVE
хотя мне важется что все идет к NET + SQL NATIVE
Re[5]: Новые возможности T-SQL в MS SQL Server 2005
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.12.05 09:01
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>SQL Server Agent и 2 GB могли бы оставить елки палки это ведь не промышленный сервер

Не понял, xnj именно тебя беспокоит. Хочу напомнить, что использование знаков препинания — бесплатно, поэтому не имеет смысла на них экономить.
А>понятно что устану просто не хотелось бы скажем чтобы через месяц работы он упал сказав что не хватает памяти после 1.01gb нагрузки
Гм. А почему ты думаешь, что Enterprize съест меньше памяти?
А>1) а как отключить NET и вообще стоит ли
Никак. Не стоит.
А>2) какого лучше библиотеки использовать ADO.NET или SQL NATIVE
А>хотя мне важется что все идет к NET + SQL NATIVE
Да, это наиболее производительный способ. Стоит отметить, что Sql Native — это тоже ADO.NET.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Новые возможности T-SQL в MS SQL Server 2005
От: Аноним  
Дата: 09.12.05 11:51
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:


А>>SQL Server Agent и 2 GB могли бы оставить елки палки это ведь не промышленный сервер

S>Не понял, xnj именно тебя беспокоит. Хочу напомнить, что использование знаков препинания — бесплатно, поэтому не имеет смысла на них экономить.
А>>понятно что устану просто не хотелось бы скажем чтобы через месяц работы он упал сказав что не хватает памяти после 1.01gb нагрузки
S>Гм. А почему ты думаешь, что Enterprize съест меньше памяти?
А>>1) а как отключить NET и вообще стоит ли
S>Никак. Не стоит.
А>>2) какого лучше библиотеки использовать ADO.NET или SQL NATIVE
А>>хотя мне важется что все идет к NET + SQL NATIVE
S>Да, это наиболее производительный способ. Стоит отметить, что Sql Native — это тоже ADO.NET.

Стоит отметить, что Sql Native — это тоже ADO.NET.
как это ??? вроде SQL NATIVE это другие DLL подточенные для всяких фишек SQL 2005
а так то вроде технология одна ADO.NET или как ???
Re[7]: Новые возможности T-SQL в MS SQL Server 2005
От: gaidar www.microsoft.com/rus
Дата: 09.12.05 12:45
Оценка: 3 (1)
Добрый день,

Извиняюсь, что не смог сразу ответить на ваши вопросы, поскольку до форума смог добраться лишь только что.

Отвечаю:

1) TABLESAMPLE и TOP отличаются тем, что TOP возвращает определенное число записей из выборки в соответствии с порядком сортировки. TABLESAMPLE дает некоторую выборку, определяемую квази случайным образом и содержащую число записей лишь _примерное_ равное заданному программистом.

2) SQL Express держит базу данных устойчиво и надежно. Отличий в надежности от SQL Standard или Enterprise нет. Просто у более старших редакций есть дополнительные возможности и сервисы (которые, кстати, тоже требовательны к ресурсам).
На счет устойчивости — использовал SQL Express в одном приложении (правда сейчас ребята, для которых это делалось собираются мигрировать на Standard, поскольку нужен полнотекстовый поиск) — сервер 2xXeon 3 GHz, 2 Gb RAM держит около 200 пользователей, база около 2 Gb. Проблем, насколько я знаю, нет.

3) Бояться использовать все возможности ADO.NET не стоит, поскольку технология хорошо оптимизирована и не внесет критических "тормозов" на современных машинах. Опять же, п.2

Удачи!
Re: Новые возможности T-SQL в MS SQL Server 2005
От: BoresExpress Россия  
Дата: 26.12.05 13:31
Оценка:
Здравствуйте, Гайдар Магдануров, Вы писали:

ГМ>Статья:

ГМ>Новые возможности T-SQL в MS SQL Server 2005
Автор(ы): Гайдар Магдануров
Дата: 07.12.2005
Как я заметил, на RSDN не было еще статьи посвященной именно
T-SQL новшествам в SQL 2005. Думаю, эта статья будет интересна читателям
журнала.

Во-первых, огорчает большое количество орфографических ошибок. На всех понажимал Ctrl+Enter, надеюсь автор исправит.

Теперь вопросы.
CREATE TABLE [dbo].[Brands](
    [BrandID] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](32) NOT NULL,
    [ParentID] [int] NULL  DEFAULT ((0))
)

Зачем разрешать в поле NULL и давать ему DEFAULT VALUE? Если у поля задано DEFAULT VALUE, то NULL туда никогда сам собой не вставится. Тем более, в Вашем, господин Магдануров, примере он в поле ParentID и не ожидается. Это следует из этого примера:
WITH C (BrandID, [Name], ParentID, NestingLevel) AS
(
    SELECT B.BrandID, B.[Name], B.ParentID, 1 FROM Brands AS B WHERE ParentID = 0
    UNION ALL
    SELECT B.BrandID, B.[Name], B.ParentID, (NestingLevel + 1) FROM Brands AS B
        INNER JOIN C ON C.BrandID = B.ParentID
)

Как я понимаю, это очередная опечатка.

Ещё вопрос. Вот цитата из Вашей статьи:
ГМ>В предыдущих версиях SQL Server для использования переменной в качестве параметра оператора TOP приходилось прибегать к сложным конструкциям или динамическому созданию запроса.

А как же SET ROWCOUNT? В этой конструкции можно использовать переменную! И никакого динамического SQL!
Очень странно, что Вы, господин Магдануров, забыли о таком очевидном способе ограничить количество строк в выборке значением, заданным в переменной.
Re[2]: Новые возможности T-SQL в MS SQL Server 2005
От: gaidar www.microsoft.com/rus
Дата: 20.03.06 18:04
Оценка:
Здравствуйте, BoresExpress, Вы писали:

BE>Во-первых, огорчает большое количество орфографических ошибок. На всех понажимал Ctrl+Enter, надеюсь автор исправит.


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

BE>Теперь вопросы.

BE>
BE>CREATE TABLE [dbo].[Brands](
BE>    [BrandID] [int] IDENTITY(1,1) NOT NULL,
BE>    [Name] [nvarchar](32) NOT NULL,
BE>    [ParentID] [int] NULL  DEFAULT ((0))
BE>)

BE>

BE>Зачем разрешать в поле NULL и давать ему DEFAULT VALUE? Если у поля задано DEFAULT VALUE, то NULL туда никогда сам собой не вставится. Тем более, в Вашем, господин Магдануров, примере он в поле ParentID и не ожидается.

Да. Это опечатка.


BE>Ещё вопрос. Вот цитата из Вашей статьи:

ГМ>>В предыдущих версиях SQL Server для использования переменной в качестве параметра оператора TOP приходилось прибегать к сложным конструкциям или динамическому созданию запроса.
BE>А как же SET ROWCOUNT? В этой конструкции можно использовать переменную! И никакого динамического SQL!
BE>Очень странно, что Вы, господин Магдануров, забыли о таком очевидном способе ограничить количество строк в выборке значением, заданным в переменной.

Речь идет _об операторе TOP_, а не о возможностях ограничения количества строк. Да SET ROWCOUNT позволяет выполнить ту же задачу, но здесь уже имеется некоторый недостаток — в случае большой процедуры, забыв восстановить значение количества строк, можно получить неприятные ошибки и нужно тщательно следить за такими "выкрутасами" других разработчиков проекта, поэтому в некоторых компаниях использование SET ROWCOUNT в хранимых процедурах даже было запрещено!

Гайдар
Re[3]: Новые возможности T-SQL в MS SQL Server 2005
От: Аноним  
Дата: 01.09.06 09:00
Оценка:
Здравствуйте, gaidar, Вы писали:

G>Здравствуйте, BoresExpress, Вы писали:


BE>>Во-первых, огорчает большое количество орфографических ошибок. На всех понажимал Ctrl+Enter, надеюсь автор исправит.


G>К сожалению должен признать, что опечатки есть. Но править их могут только редакторы, поскольку я, автор, таких прав не имею.


BE>>Теперь вопросы.

BE>>
BE>>CREATE TABLE [dbo].[Brands](
BE>>    [BrandID] [int] IDENTITY(1,1) NOT NULL,
BE>>    [Name] [nvarchar](32) NOT NULL,
BE>>    [ParentID] [int] NULL  DEFAULT ((0))
BE>>)

BE>>

BE>>Зачем разрешать в поле NULL и давать ему DEFAULT VALUE? Если у поля задано DEFAULT VALUE, то NULL туда никогда сам собой не вставится. Тем более, в Вашем, господин Магдануров, примере он в поле ParentID и не ожидается.

G>Да. Это опечатка.



BE>>Ещё вопрос. Вот цитата из Вашей статьи:

ГМ>>>В предыдущих версиях SQL Server для использования переменной в качестве параметра оператора TOP приходилось прибегать к сложным конструкциям или динамическому созданию запроса.
BE>>А как же SET ROWCOUNT? В этой конструкции можно использовать переменную! И никакого динамического SQL!
BE>>Очень странно, что Вы, господин Магдануров, забыли о таком очевидном способе ограничить количество строк в выборке значением, заданным в переменной.

G>Речь идет _об операторе TOP_, а не о возможностях ограничения количества строк. Да SET ROWCOUNT позволяет выполнить ту же задачу, но здесь уже имеется некоторый недостаток — в случае большой процедуры, забыв восстановить значение количества строк, можно получить неприятные ошибки и нужно тщательно следить за такими "выкрутасами" других разработчиков проекта, поэтому в некоторых компаниях использование SET ROWCOUNT в хранимых процедурах даже было запрещено!


G>Гайдар


Уважаемый Гайдар возвращаясь к теме EXPRESS

2) SQL Express держит базу данных устойчиво и надежно. Отличий в надежности от SQL Standard или Enterprise нет. Просто у более старших редакций есть дополнительные возможности и сервисы (которые, кстати, тоже требовательны к ресурсам).
На счет устойчивости — использовал SQL Express в одном приложении (правда сейчас ребята, для которых это делалось собираются мигрировать на Standard, поскольку нужен полнотекстовый поиск) — сервер 2xXeon 3 GHz, 2 Gb RAM держит около 200 пользователей, база около 2 Gb. Проблем, насколько я знаю, нет.


вот у меня в задаче которая написана на NET1 и БД MS 2000 происходило практически мгновенное соединение SQLCONNECTION
а вот в задаче которая написана на NET2 и БД MS 2005 Express происходит задержка на открытии SQLCONNECTION на 3-5 секунд причем и на локальном сервере ни как не пойму в чем причина могу прислать код если надо ....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.