

Features Of SQL Server 2012 - KarenLopez
http://mcpmag.com/articles/2012/03/14/top-12-features-of-sql-server-2012.aspx

======
stevear
SQL Server has been one of my favorite software products of all time. As an
admin it has been rock solid and not produced any headaches that weren't our
own fault.

With that said, to really get the most out of SQL Server (and most likely most
other SQL implementations) you really have to do your homework and put in the
time to go through the features. Perhaps more than anything this is why NoSQL
has taken off-- it's very simple to get going. At user groups I hear a lot of
people saying they selected MongoDB because "They had millions of rows and SQL
just couldn't keep up" and to me it just sounded like no one in their
organization had any solid SQL experience.

It's too bad MS didn't build a 'SQL Admin' into their product that sent an
email on occasion to say things like "You have a query that is called
frequently and could be sped up if you simply included this column in this
index. Here are some details!"

~~~
einhverfr
_SQL Server has been one of my favorite software products of all time._

I feel the same way about PostgreSQL, along with the bit about learning all
the features. I suspect that most decent RDBMS's are this way.

 _At user groups I hear a lot of people saying they selected MongoDB because
"They had millions of rows and SQL just couldn't keep up" and to me it just
sounded like no one in their organization had any solid SQL experience._

hahahaha. I have customers with db's with 10's of millions of rows (And I
expect hundreds of millions or rows in the foreseeable future) and I can't
imagine MongoDB keeping up in terms of reporting......

------
nwatson
Purported new feature: "Columnstore Indexes -- This a cool new feature that is
completely unique to SQL Server. They are special type of read-only index
designed to be use with Data Warehouse queries. Basically, data is grouped and
stored in a flat, compressed column index, greatly reducing I/O and memory
utilization on large queries."

Many DB engines such as Vertica, SenSage, Sybase IQ, all use column-oriented
storage. Perhaps the only novel-but-obvious thing here is that these "read-
only" indexes are implied to live alongside the regular DB table data, though
I'm not sure how these "read-only" indexes would mesh with the need to support
deletion on regular tables.

<http://en.wikipedia.org/wiki/Column_oriented_database>

~~~
mgkimsal
Perhaps the engine will update the "read only indexes" when the corresponding
data in regular tables are deleted, but not in realtime, but only on demand or
on a predetermined schedule?

~~~
orcadk
The columnstore indexes are purely read-only; they will not be updated without
requiring a rebuild.

However, you can create columnstore indexes on specific partitions, and thus,
by partitioning your source data, you can continue to add new data in new
partitions. As most DW/"big data" solutions use partitioning anyways, this is
a usable solution, giving you the benefits of the readonly performance as well
as the maintainability aspects, while still allowing you to feed in new data.

Columnstore indexes are not meant for OLTP type solutions, so there's no need
for realtime regular data deletion; it simply doesn't happen on this kind of
historical data. You might switch out a partition of your data, or you might
switch in a partition of new data, but you won't change the actual data
itself.

Comparing SQL Servers columnstore index implementation with other columnstore
based databases doesn't make sense. I won't laud columnstore indexes as a
revolutionary new feature, but the way it's implemented is new, AFAIK.
Comparing it to "normal" columnstore based databases will make SQL Server look
bad - but the thing is, it's not meant to compete with those. Use it where it
makes sense.

------
gizzlon
A little OT, but this was very surprising:

 _"MS is making a push back to the command line for server products). Core is
the GUI-less version of Windows that uses DOS and PowerShell for user
interaction. It has a much lower footprint (50% less memory and disk space
utilization), requires fewer patches, and is more secure than the full
install. Starting with SQL 2012, it is supported for SQL Server."_

~~~
KarenLopez
What is surprising about it? Server core is for specific situations.

------
NDizzle
I'd be happy with simple syntax for things like OFFSET/LIMIT and GROUP_CONCAT
at this point.

~~~
mgkimsal
if they gave you that, it'd be too easy to port a lot of basic stuff away from
sql server.

I worked someplace that was primarily a SQL Server shop, although was still
largely Java and some PHP at the time. I was tasked with building something to
paginate through records. There were several hundred thousand to paginate
through, and I had to resort to getting the DBA to build some weird sproc with
cursors and junk in it.

"I just need _some_ of the rows"

"Why would you need that?" (honest to goodness question from the DBA)

"Well, because I only need to show 30 items on the screen, not 400,000.
Showing 400,000 might take a while."

"Just use TOP. SQL Server lets you do SELECT TOP(30) already!"

"Umm... but I might need to see the second 30, or the 99th 30."

"Why? No one does that!"

Insane. They experimented with some monstrosity of nested TOP() queries. They
refused to allow MySQL to be used ("it's just a toy"), when it was perfectly
capable for the requirement, and had developer-useful stuff like LIMIT in it.
I got some overly engineered sproc that had to be updated whenever I needed a
change, and I ended up leaving a few months later. Not specifically because of
that, but that culture was one I couldn't fit in to. I've heard it's gotten
better, but I don't really believe it's better so much as the people who've
stayed there have adapted and worked around the cognitive dissonance it
triggered.

~~~
saryant
I might be wrong, but I'm pretty sure I've implemented pagination in SQL
Server and it wasn't as complicated as that. Maybe I produced the world's
worst pagination technique but I don't think I ever resorted to TOP. The
ROW_NUMBER() function takes care of this.

~~~
steverb
Yes.

[http://stackoverflow.com/questions/548475/efficient-way-
to-i...](http://stackoverflow.com/questions/548475/efficient-way-to-implement-
paging)

------
Smrchy
Now if only MS would sit down and create a useable NodeJS client for MS-SQL.

The lack of a good clients outside the Windows world is what makes me move
away from this otherwise great product.

------
locusm
There is some great features there but Reporting Services is a turd that
should have been flushed, not polished.

~~~
reagan83
I disagree. Reporting Services in 2008 (especially with R2 and Report Builder
3.0) is great. It serves as a great alternative to Crystal and it comes
included with the SQL Server license.

IMHO SSRS in SQL Server 2012 has matured more than I expected and offers a lot
of the same functionality that comes with others in the Enterprise Reporting
space. It's worth giving it another shot.

------
cosha
Microsoft is so last year

