T-SQL.RU




Очередная раздача книг по SQL Server (Microsoft_eBooks)


Troubleshooting
SQL Server
AlwaysOn

5 Tips for a Smooth
SSIS Upgrade to
SQL Server 2012

A Hitchiker's Guide
to Microsoft StreamInsight
Queries

Data Mining Extensions
(DMX) Reference

Data Quality Services

High Availability
Solutions

Master Data Services

Monitor and Tune
for Performance

Multidimensional
Expressions (MDX)
Reference

SQL Server Distributed
Replay

Transact-SQL Data
Definition Language
(DDL) Reference

XQuery Language
Reference

Integration Services:
Extending Packages
with Scripting

Multidimensional Model
Programming

SQL Server 2012 Tutorials:
Reporting Services

SQL Server 2012 Tutorials:
Writing Transact-SQL
Statements

SQL Server Community
FAQs Manual

SQL Server 2012
Tutorials: Analysis
Services - Tabular
Modeling

Microsoft SQL Server
AlwaysOn Solutions
Guide for High
Availability and Disaster
Recovery

Transact-SQL Data
Manipulation Language (DML)
Reference

QuickStart: Learn DAX
Basics in 30 Minutes

SQL Server 2012
Tutorials: Analysis
Services - Data Mining

Microsoft SQL Server
Analysis Services
Multidimensional
Performance and
Operations Guide

Data Analysis
Expressions (DAX)
Reference

SQL Server 2012
Upgrade Technical
Guide

Backup and Restore of
SQL Server Databases

SQL Server 2012
Tutorials: Analysis
Services -
Multidimensional
Modeling

Master Data Services
Capacity Guidelines

Optimized Bulk Loading
of Data into Oracle

Planning Disaster
Recovery for Microsoft
SQL Server Reporting
Services in ...
читать дальше...
добавлено: 13 июл 14 просмотры: 1315, комментарии: 0



SQL Server 2014

добавлено: 11 апр 14 просмотры: 952, комментарии: 0



T-SQL - язык года (2013)

По итогам 2013-ого года T-SQL был признан языком года (по результатам исследований "TIOBE Software"). При этом за прошедший год популярность языка выросла более чем на 12 пунктов и Transact-SQL вошёл в десятку самых популярных языков в мире. По итогам 2012-ого года он находился всего лишь на 22 месте.

Что касаемо PL/SQL, то он тоже имеет положительный тренд по итогам года и его популярность увеличилась с 21 места до 17-ого, но при этом он всё-таки значительно уступает T-SQL.

Общий результат TOP20 популярности языков программирования на январь 2014 года ниже:

 

И для полноты картины языки-лидеры за последние 10 лет:

 

читать дальше...
добавлено: 31 янв 14 просмотры: 1608, комментарии: 0



eBooks: бесплатные книги по SQL Server

Большая коллекция бесплатных книг по SQL Server от лучших экспертов по базам данных. Коллекция постоянно пополняется и эта страница будет периодически обновляться.

 

 

 

 

SQL Development
SQL Server Execution Plans
SQL Server Execution Plans Every day, out in the various online forums devoted to SQL Server, and on Twitter, the same types of questions come up repeatedly: Why is this query running slowly? Why is SQL Server ignoring my index? Why does this query run quickly sometimes and slowly at others? My response is the same in each case: have you looked at the execution plan?
An execution plan describes what's going on behind the scenes when SQL Server executes a query. It shows how the query optimizer joined the data from the various tables defined in the query, which indexes it used, if any, how it performed any aggregations or sorting, and much more. It also estimates the cost of all of these operations, in terms of the relative load placed on the system.
Every Database Administrator, developer, report writer, and anyone else who writes T-SQL to access SQL Server data, must understand how to read and interpret execution plans. My book leads you right from the basics of capturing plans, through how to interrupt them in their various forms, graphical or XML, and then how to use the information you find there to diagnose the most common causes of poor query performance, and so optimize your SQL queries, and improve your indexing strategy.
Inside the SQL Server ...
читать дальше...
добавлено: 21 янв 14 просмотры: 2129, комментарии: 1



SSIS: ReplaceNull

Одной из частовозникающих задач в пакетах SSIS является замена значений NULL на какое-то конкретное значение. К сожалению, прежде это была не совсем тривиальная задача, т.к. в Integration Services не было оператора аналогичного оператору ISNULL() в языке T-SQL. Точнее даже так: оператор такой есть, но работает он немного иначе.
ISNULL (SSIS) - Возвращает результат в виде логического выражения, в зависимости от того, имеет ли выражение значение NULL.

Поэтому для задачи, в которой основное требование было обработать значения NULL и вывести вместо них значение 0 (ноль), решалась следующим скриптом:

(ISNULL(OpPriceAir) ? (DT_CY)0 : OpPriceAir) + (ISNULL(OpPriceExt) ? (DT_CY)0 : OpPriceExt)



С выходом SQL Server 2012 всё меняется, т.к. в SSIS появился новый оператор REPLACENULL. И теперь та же задача решается следующим образом:

REPLACENULL(OpPriceAir,0) + REPLACENULL(OpPriceExt,0)



Мелочь, но приятно.

читать дальше...
добавлено: 01 янв 14 просмотры: 690, комментарии: 0



SQL Server 2014: Параллельная операция SELECT INTO

SQL Server 2014Совсем недавно в общем доступе появилась версия SQL Server 2014 CTP1 - http://technet.microsoft.com/ru-ru/evalcenter/dn205290.aspx.
Microsoft SQL Server 2014 представляет на рынке новые возможности памяти, встроенные в основную базу данных, включая встроенную в память оперативную обработку транзакций (OLTP), дополняющую существующие возможности бизнес-аналитики и хранения данных в памяти, для создания самого многофункционального решения хранящейся в памяти базы данных. SQL Server 2014 также предлагает новые облачные возможности, позволяющие упростить перемещение существующих баз данных SQL в облако и открыть для себя новые сценарии гибридного развертывания.

Поэтому пора начать смотреть, что нового, что интересного нас ждёт в новой версии самой популярной промышленной СУБД.

Говоря о новинках стоит обратиться к ряду документов, которые так же появились в общем доступе:


Но обо всём по порядку, и начнём с одной очень интересной возможности, которая появилась в SQL Server 2014 - это параллельное выполнение операции SELECT...INTO.

Тесту буду проводить на 2-х версиях:

SQL Server 2012

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
	Dec 28 2012 20:23:12 
	Copyright (c) Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 6.1  
         (Build 7601: Service Pack 1)

SQL Server 2014 CTP1

Microsoft SQL S...
читать дальше...
добавлено: 08 авг 13 просмотры: 1491, комментарии: 0



SQL Server 2014 CTP1: новые системные объекты

SQL Server 2014


На данный момент не так много информации в сети о всем изменениях, которые нас ждут в SQL Server 2014. При этом не стоит забывать, что это всего лишь первая публичная версия СТР (Community Technology Preview), а это значит, что до RTM (Release To Manufacturing) нас ещё ждёт очень много сюрпризов.



Но прежде, чем мы увидим публичное описание новых объектов, мы можем уже сейчас сравнить список системных объектов в SQL Server 2014 CTP1 со списком системных объектов в SQL Server 2012 SP1.


Для этого я прилинкую к экземпляру SQL Server 2014 экземпляр с SQL Server 2012 SP1. В моём случаи это именованный экземпляр: [ALOHAPC\SQL2012].



Теперь мы можем сравнить какие объекты появились в системном представлении sys.all_objects, а какие исчезли.


Новые объекты (48):


select s.name [schema_name], o.name, o.type_desc 
from master.sys.all_objects o
inner join master.sys.schemas s
on o.schema_id = s.schema_id
except
select s.name [schema_name], o.name, o.type_desc
from [ALOHAPC\SQL2012].master.sys.all_objects o
inner join [ALOHAPC\SQL2012].master.sys.schemas s
on o.schema_id = s.schema_id
order by 3,1,2

























































































































































































































































СхемаОбъектТип объекта
syssp_set_cardinality_estimation_model_110EXTENDED_STORED_PROCEDURE
sysplan_persist_context_settingsINTERNAL_TABLE
sysplan_persist_planINTERNAL_TABLE
sysplan_persist_queryINTERNAL_TABLE
sysplan_persist_query_textINTERNAL_TABLE
sysplan_persist_runtime_statsINTERNAL_TABLE
sysplan_persist_runtime_stats_intervalINTERNAL_TABLE
sysfn_dblog_xtpSQL_INLINE_TABLE_VALUED_FUNCTION
sysfn_dump_dblog_xtpSQL_INLINE_TABLE_VALUED_FUNCTION
sysfn_hadr_is_primary_replicaSQL_SCALAR_FUNCTION
syssp_cci_tuple_moverSQL_STORED_PROCEDURE
syssp_db_enable_clustered_columnstoresSQL_STORED_PROCEDURE
syssp_xtp_merge_checkpoint_filesSQL_STORED_PROCEDURE
syssyscsrowgroupsSYSTEM_TABLE
syssysmatrixageforgetSYSTEM_TABLE
syscolumn_store_row_groupsVIEW
sysdm_db_merge_requestsVIEW
sysdm_db_xtp_checkpointVIEW
sysdm_db_xtp_checkpoint_filesVIEW
sysdm_db_xtp_gc_cycle_statsVIEW
sysdm_db_xtp_hash_index_statsVIEW
sysdm_db_xtp_index_statsVIEW
sysdm_db_xtp_memory_consumersVIEW
sysdm_db_xtp_object_statsVIEW
sysdm_db_xtp_table_memory_statsVIEW
sysdm_db_xtp_transactionsVIEW
sysdm_io_cluster_shared_volumesVIEW
sysdm_os_buffer_pool_extension_configurationVIEW
sysdm_resource_governor_resource_pool_volumesVIEW
sysdm_xe_database_session_event_actionsVIEW
sysdm_xe_database_session_eventsVIEW
sysdm_xe_database_session_object_columnsVIEW
sysdm_xe_database_session_targetsVIEW
sysdm_xe_database_sessionsVIEW
sysdm_xtp_consumer_memory_usageVIEW
sysdm_xtp_gc_queue_statsVIEW
sysdm_xtp_gc_statsVIEW
sysdm_xtp_memory_statsVIEW
sysdm_xtp_system_memory_consumersVIEW
sysdm_xtp_threadsVIEW
sysdm_xtp_transaction_recent_rowsVIEW
sysdm_xtp_transaction_statsVIEW
sysevent_session_actionsVIEW
sysevent_session_eventsVIEW
sysevent_session_fieldsVIEW
sysevent_session_targetsVIEW
sysevent_sessionsVIEW
syshash_indexesVIEW

 


Исчезли объекты из SQL Server 2014 CTP1:


select s.name [schema_name], o.name, o.type_desc 
from [ALOHAPC\SQL2012].master.sys.all_objects o
inner join [ALOHAPC\SQL2012].master.sys.schemas s
on o.schema_id = s.schema_id
except
select s.name [schema_name], o.name, o.type_desc
from master.sys.all_objects o
inner join master.sys.schemas s
on o.schema_id = s.schema_id
order by 3,1,2



















СхемаОбъектТип объекта
sysxp_get_scriptEXTENDED_STORED_PROCEDURE
dbosysmatrixageforgetSYSTEM_TABLE
добавлено: 04 авг 13 просмотры: 1028, комментарии: 1



SQL Server 2014: ONLINE операции над отдельными секциями секционированных объектов

SQL Server 2014

Продолжу серию заметок о новых возможностях SQL Server 2014. И сегодня поговорим об ещё одной приятной конструкции - ONLINE перестроение отдельных секций секционированных объектов (таблиц или индексов).

Напомню, что некоторые редакции SQL Server (Enterprise, Evaluation, Developer) позволяют выполнять ряд операций в режиме ONLINE. Основное преимущество этого режима - это то, что в момент создания/изменения индекса мы можем продолжать работать с данными, в том числе вносить изменения в эти данные. Происходит это за счёт того, что блокировка схемы (Sch-M) не удерживается на всём этапе создания/изменения. С более полным списком возможностей, поддерживаемых различными выпусками, можно ознакомиться по ссылке: http://msdn.microsoft.com/ru-ru/library/cc645993.aspx


Действительно, возможность очень полезная, особенно, если у вас доступность данных - это одно из ключевых требований к системе. Но до версии SQL Server 2014 у нас возникает ряд ограничений, если мы работаем с секционированными объектами. Основное ограничение в том, что мы не можем проводить ONLINE операции над отдельно взятой секцией, а только над всем объектом целиком.

При попытке выполнить инструкцию:

alter table [MyTable] rebuild partition = 1 with (online = on)

мы получим исключение:

'online' is not a recognized ALTER INDEX REBUILD PARTITION option


Без указания режима ONLINE для секции мы получаем блокировку Sch-M на всю таблицу, что, согласитесь не приятно. При этом мы можем изменить режим эскалации (LOCK_ES...

читать дальше...
добавлено: 30 июл 13 просмотры: 1060, комментарии: 1



SQL Server 2014: Защита от администратора

SQL Server 2014

Такая странная тема для очередной заметки про SQL Server 2014 CTP1 выбрана не случайно. С завидным постоянством на форумах по MS SQL Server появляются вопросы из разряда:

"Как мне защитить мои данные от администратора БД?".

До недавнего времени эта задача была нерешаемой, но, благодаря появлению в SQL Server 2014 трёх новых разрешений уровня сервера (CONNECT ANY DATABASE, IMPERSONATE ANY LOGIN, и SELECT ALL USER SECURABLES), у нас появилась возможность более гибко управлять серверными ролями. В том числе мы можем создать администраторскую серверную роль с полным запретом на доступ к пользовательским данным.

Напомню, что возможность создавать серверные роли появилась впервые в SQL Server 2012 (CREATE SERVER ROLE), а в версии SQL Server 2014 разработчики пошли чуть дальше.


Но всё по порядку. Сперва создадим новую серверную роль NewServerRole, принадлежащую предопределенной роли сервера sysadmin (Члены предопределенной роли сервера sysadmin могут выполнять любые действия на сервере).

create server role NewServerRole authorization sysadmin;
go

Теперь создадим для демонстрации новый логин, который мы включим в нашу серверную роль NewServerRole. При этом не забываем прежде выставить смешаный режим авторизации (правой кнопкой мыши по нашему серверу БД => Properties => Security => Server authentication) и перезапустить службу SQL Server.

create login NewLogin with password = 'Qwerty1';
go
alter server role NewServerRole add member NewLogin;
go

А теперь...

читать дальше...
добавлено: 15 июл 13 просмотры: 1480, комментарии: 1