ColumnStore Index vs Columnar DB - sql-server

There is an option called "ColumnStore Index" available in SQL Server 2012.
Is it comparable with columnar databases such as Cassandra, HBase?
Few advantages of going with SQL Server 2012 can be:
It is Updateable
It is Relational
What other factors can be considered to choose between SQL Server 2012 and other Columnar databases in case faster query performance is a requirement.

I'm not sure what you mean by "it is updatable", but in SQL Server 2012 tables that have a columnstore index cannot be updated. You must first drop the columnstore index or you must partition around the columnstore index in order to support changes to the underlying data.
Also, columnstore indexes are useful in DW systems where very large amounts of data have to be aggregated and accessed quickly.
In SQL Server 2012 you have the alternative of indexed (materialized) views.

Related

Alternative to partitioning in SQL Server 2016 on memory optimized tables

I have a script in existing SQL Server 2012 to delete old/expired sessions using partitioning. Data is moved from the source table to the staging table on basis of weekday partition and truncate operation is performed on the source table.
After migration to SQL Server 2016, partition and truncate is not supported on memory-optimized tables. What is the best solution to deal with this?

Drop Partitions SQL Server 2008

I have to migrate SQL Sever 2008 database to the SQL Server 2012. 2008 is the enterprise version and 2012 is standard version. As we know, standard version does not support table partitioning.
The table which is partitioned in the enterprise version has 1 clustered and around 8 non-clustered indexed. I need to drop this partition but do not know how. Can someone please shed little light on how should I go about it?
Thanks.
To unpartition a table, you'll need to recreate all the indexes with a filegroup specification instead of parttion scheme. I suggest you drop all the non-clustered indexes and then rebuild the existing partitioned clustered index using CREATE INDEX...WITH(DROP_EXISTING-ON) with a filegroup specification. Then recreate the non-clustered indexes with a filegroup specfied.

OLAP difference between ORACLE and SQL Server

I'm beginner in OLAP manipulation in ORACLE. What is difference of OLAP between SQL Server and ORACLE?
Information I've understood about OLAP:
In ORACLE, OLAP is represented logically in data warehouse by relational table with join. We can use T-SQL to query data in OLAP, ORACLE adds ROLLUP, GROUPING, ... in T-SQL to enforce OLAP operations.
In SQL Server:
Like ORACLE, OLAP can be represented logically by relational tables with join, we can use T-SQL with ROLLUP, GROUPING SET, GROUP BY, ... like ORACLE to query data.
OLAP in SQL Server can be stored physically in SSAS, in this case, MS offers MDX to query data in OLAP.
So to learn OLAP in ORACLE, I can use the first option of SQL Server as an alternative (For the moment I have some difficult about material with ORACLE installation)
Thank for any suggestion or confirmation about my information.

Does SQL Server support hash indexes?

Are all the indexes in SQL Server B Tree?
Surely primary keys and foreign should be hash based indexes?
Not all indexes in SQL Server are B-tree indexes (SQL Server 2012 added columnstore indexes which are a bit different), but there is no such thing as a hash-based index there (yet).
Here's a pretty straight forward article explaining that all indices are b tree indices in SQL Server:
http://msdn.microsoft.com/en-us/library/ms177443(v=sql.105).aspx
I think if you want to get more into the nitty gritty of specific RDBMS' implementations, you could try posting to http://dba.stackexchange.com

Non-clustered index with INCLUDE equivalent in SQL Server 2000

I created a non-clustered index (using the execution plan tools in MSSQLSMS) that greatly speeds up a critical, time-consuming query. My test machine uses SQL Express 2008, but I'm limited to SQL Server 2000 on the production server.
The index includes some non-key columns in an INCLUDE statement:
CREATE NONCLUSTERED INDEX idxTotalFundsUnderManagementQuery_TotalPv
ON PortfolioMovements (PortfolioMovementType, AtDate)
INCLUDE (PortfolioID, SecurityGuid, Units)
INCLUDE isn't supported on SQL Server 2000. Is there a way to include non-key columns in the index?
No: http://msdn.microsoft.com/en-us/library/aa258260(v=sql.80).aspx
It's a performance feature that was introduced in SS 2005 AFAIK.

Resources