Showing posts with label guys. Show all posts
Showing posts with label guys. Show all posts

Monday, March 19, 2012

is SSIS wonderful?

Hi guys, I'm using sql 2000 now but eventually will upgrade existing server to sql 2005. currently we only have OLTP dbs. I would like to set up data warehouse & OLAP functionality to drive reporting from the system, is SSIS the product I need? can you please give me the suggestions?

regards

SSIS will certainly help you get your data warehouse going. It is certainly light years ahead of DTS in SQL Server 2000 in terms of functionality and operatability.|||

I know SQL 2005 can do pivot() in the query, isn't enough for reporting? Do I really need to use SSIS ?

|||

NewWorld wrote:

I know SQL 2005 can do pivot() in the query, isn't enough for reporting? Do I really need to use SSIS ?

Reporting really has nothing to do with SSIS. Though you can perform upfront calculations in SSIS and load them into a table to be later used for reports.

Pivot? Pivot is only a small piece of SSIS.|||

I've been using SSIS for a couple of months now and have grown to like it. I'm using it for exactly what you mention -- importing data from (multiple) OLTP databases into a relational data warehouse.

The visual designer is very useful since you can easily see how the data is flowing while running the package. And data viewers are a terrific debugging tool since you can see the data at different points in the data pipeline (much easier than debugging raw SQL scripts).

As far as OLAP goes, you would use SQL Server 2005 Analysis Services to define the structure of your OLAP database, and then use SSIS to get your data from the relational warehouse into the OLAP database (that's usually the last step of my SSIS package -- process the cube).

For reporting, you could use SQL Server 2005 Reporting Services to report on the data in the relational warehouse and/or the OLAP cubes.

Hope this helps, and good luck.

-Larry

|||SSIS - whats that?

You would be much better off creating your own app... lol

Anyways - after using SSIS for 6 months - it is improvement over DTS; BUT MS 2nd hack at ETL tool isnt quite the big time yet --> Some/most Built-in tasks/tools are mediocre or missing (FTP,ZIP,Email etc) and Data Flow although good concept doesnt have a match for SQL based solution --> for example to Update data - you would drop dead using OLE Update Command.

Although - I might sound synical - this is not just based on my own experience banging head against wall trying to figure out SSIS; our consultant with 20 years of DB & programming experience has similar opinion - its his idea using SQL based ETLs which we decided to follow.

Wonderful - joke rite?
Improvement - YES
Easy to get started - YES
Satisfies all your requirements --> Maybe - Maybe Not - BUT be ready for all kinds of errors and mishaps in the journey.

As usual - SSIS forum is the best place to find help in case you get into trouble|||

TheViewMaster wrote:


Anyways - after using SSIS for 6 months - it is improvement over DTS; BUT MS 2nd hack at ETL tool isnt quite the big time yet --> Some/most Built-in tasks/tools are mediocre or missing (FTP,ZIP,Email etc) and Data Flow although good concept doesnt have a match for SQL based solution --> for example to Update data - you would drop dead using OLE Update Command.

I'm going to have to disagree with you here. The data flow (where the OLE DB Command transformation is located) is designed to operate on a row-by-row basis. In a perfect world, how would you propose to implement an "update" feature? Are you looking for more of a GUI-based batch update in the CONTROL flow (as opposed to the Execute SQL task)?

|||

Lawrence Parker wrote:

The visual designer is very useful since you can easily see how the data is flowing while running the package. And data viewers are a terrific debugging tool since you can see the data at different points in the data pipeline (much easier than debugging raw SQL scripts).

Sorry mate - Data Flow data view is no match to SQL solution with using TEMP table to Load data and then Views, SPs, queries to process it which you can use anytime to monitor data movement. Dataview is only design time feature and doesnt help you much if package breaks down in the middle of a job.

Also - SQL solution although a bit more code will make packages easier to upgrade

My personal opinion - SSIS is not quite ready for ETL yet - do Extraxt Load Transform - and you are much better off|||I like being disagreed with on technical stuff - by defending my ideas on importing others we all improve.

OLE DB Command - row by row is way too slow - in a perfect world you would have something like UPDATE mytable FROM ... translated to SSIS.

Also - i forgot in me previous post -
I found a nugget today in Microsoft SQL language -
DELETE FROM x FROM x x ...|||

TheViewMaster wrote:

I like being disagreed with on technical stuff - by defending my ideas on importing others we all improve.

OLE DB Command - row by row is way too slow - in a perfect world you would have something like UPDATE mytable FROM ... translated to SSIS.

Also - i forgot in me previous post -
I found a nugget today in SQL language -
DELETE FROM x FROM x x ...

Right, but you cannot perform an "UPDATE mytable FROM anotherTable" in the data flow. (It shouldn't be expected that you could) You can do that today, and it is the preferred method, in the control flow via an Execute SQL task. Even if they did perform an "UPDATE mytable FROM anotherTable" in the data flow, you certainly wouldn't want that executing for EVERY row, would you? The control flow is the place for that operation. So again, are you asking for a GUI-based task in the control flow to perform batch updates?

|||Perhaps I am asking for wrong thing - but in SQL Stored Procedure all that could be done in one task -
Update existing
Insert new
Delete old
which is the bases of most of our ETL imports to our DB tables

At the moment we are using Data Flow to insert text files to db temp tables (In my case I sneak in occasional Derived column) and then do SQL processing.
I do like control of application (SSIS) to do the work, however benefits of SQL solution have outwighed my initial preference:
SQL has better maintainability - changes can be made to SPs, VIEWS without having to go through of hassle to recompile & deploy package
SQL - simpler processing model - TXT - TEMP table - VIEW - SP IMPORT table - VIEW - SP- Production table

However - SSIS benefits:
less TEMP tables and SQL code
ability to add info in Data Flow - derived column
customized filter duplicates Data Flow transform & able to do "INITCAP" more efficiently than in SQL

50/50|||

TheViewMaster wrote:

Perhaps I am asking for wrong thing - but in SQL Stored Procedure all that could be done in one task -
Update existing
Insert new
Delete old
which is the bases of most of our ETL imports to our DB tables

You're going to get me to 1,000 posts yet tonight, aren't you?! What you are talking about can be done in SSIS, though not inside one data flow. You need to think of the control flow as the foundation for all data work. Using your example, and assuming that order, here's how you'd do it.

Execute SQL task to update existing (update myTable FROM anotherTable) -> Data Flow (to insert new records) -> Execute SQL task (delete old)

Pretty easy, and perhaps faster than your stored procedure... Who knows. The data flow is a highly optimized engine for transporting data from point A (which could be one to many sources -- try that in your stored proc) to point B (which could be one to many destinations). Unfortunately updates aren't really part of data transportation, and is really at the mercy of the database engine.

|||1000 posts here we go - oh wait it's only my 135th post

Anyways - it s more complicated than

update

existing (update myTable FROM anotherTable) -> Data Flow (to

insert new records) -> Execute SQL task (delete old)

You need to determine which are new (lookup) - then which are changed (split) [referencing Jaime's article about SSIS - find columns in table A which are not in table B] - the SQL update, SQL delete (and trust me on this one - in SSIS books and docs they dont mention it at all - trial and error my friend to find out best way)

Somehow I think that INSERT in Store Proc is not that much slower that data flow import (and I would be rather in the mercy of DB engine than in the SSIS engine as the probablity is SSIS will be upgraded sooner)
|||

TheViewMaster wrote:


SQL has better maintainability - changes can be made to SPs, VIEWS without having to go through of hassle to recompile & deploy package

Now I *really* disagree with this statement. Using package configurations, you can create a package such that you'll never have to touch it again. I frequently use configurations to store sql so that I can make changes without touching the package. I can change databases, filenames, SQL, connection strings, etc... all with package configurations and without ever having to touch the package.

|||

TheViewMaster wrote:

1000 posts here we go - oh wait it's only my 135th post

You need to determine which are new (lookup) - then which are changed (split) [referencing Jaime's article about SSIS - find columns in table A which are not in table B] - the SQL update, SQL delete (and trust me on this one - in SSIS books and docs they dont mention it at all - trial and error my friend to find out best way)

Somehow I think that INSERT in Store Proc is not that much slower that data flow import (and I would be rather in the mercy of DB engine than in the SSIS engine as the probablity is SSIS will be upgraded sooner)

You did it! In response to the SQL delete, there are a TON of resources out there - Transact-SQL. Most anything you can do in a database, you can do in SSIS in one way or another... If you understand Transact-SQL, you can make SSIS do some pretty wonderful things!

I'll have to take this up another time, as my night has ended...

Phil

is SSIS wonderful?

Hi guys, I'm using sql 2000 now but eventually will upgrade existing server to sql 2005. currently we only have OLTP dbs. I would like to set up data warehouse & OLAP functionality to drive reporting from the system, is SSIS the product I need? can you please give me the suggestions?

regards

SSIS will certainly help you get your data warehouse going. It is certainly light years ahead of DTS in SQL Server 2000 in terms of functionality and operatability.|||

I know SQL 2005 can do pivot() in the query, isn't enough for reporting? Do I really need to use SSIS ?

|||

NewWorld wrote:

I know SQL 2005 can do pivot() in the query, isn't enough for reporting? Do I really need to use SSIS ?

Reporting really has nothing to do with SSIS. Though you can perform upfront calculations in SSIS and load them into a table to be later used for reports.

Pivot? Pivot is only a small piece of SSIS.|||

I've been using SSIS for a couple of months now and have grown to like it. I'm using it for exactly what you mention -- importing data from (multiple) OLTP databases into a relational data warehouse.

The visual designer is very useful since you can easily see how the data is flowing while running the package. And data viewers are a terrific debugging tool since you can see the data at different points in the data pipeline (much easier than debugging raw SQL scripts).

As far as OLAP goes, you would use SQL Server 2005 Analysis Services to define the structure of your OLAP database, and then use SSIS to get your data from the relational warehouse into the OLAP database (that's usually the last step of my SSIS package -- process the cube).

For reporting, you could use SQL Server 2005 Reporting Services to report on the data in the relational warehouse and/or the OLAP cubes.

Hope this helps, and good luck.

-Larry

|||SSIS - whats that?

You would be much better off creating your own app... lol

Anyways - after using SSIS for 6 months - it is improvement over DTS; BUT MS 2nd hack at ETL tool isnt quite the big time yet --> Some/most Built-in tasks/tools are mediocre or missing (FTP,ZIP,Email etc) and Data Flow although good concept doesnt have a match for SQL based solution --> for example to Update data - you would drop dead using OLE Update Command.

Although - I might sound synical - this is not just based on my own experience banging head against wall trying to figure out SSIS; our consultant with 20 years of DB & programming experience has similar opinion - its his idea using SQL based ETLs which we decided to follow.

Wonderful - joke rite?
Improvement - YES
Easy to get started - YES
Satisfies all your requirements --> Maybe - Maybe Not - BUT be ready for all kinds of errors and mishaps in the journey.

As usual - SSIS forum is the best place to find help in case you get into trouble|||

TheViewMaster wrote:


Anyways - after using SSIS for 6 months - it is improvement over DTS; BUT MS 2nd hack at ETL tool isnt quite the big time yet --> Some/most Built-in tasks/tools are mediocre or missing (FTP,ZIP,Email etc) and Data Flow although good concept doesnt have a match for SQL based solution --> for example to Update data - you would drop dead using OLE Update Command.

I'm going to have to disagree with you here. The data flow (where the OLE DB Command transformation is located) is designed to operate on a row-by-row basis. In a perfect world, how would you propose to implement an "update" feature? Are you looking for more of a GUI-based batch update in the CONTROL flow (as opposed to the Execute SQL task)?

|||

Lawrence Parker wrote:

The visual designer is very useful since you can easily see how the data is flowing while running the package. And data viewers are a terrific debugging tool since you can see the data at different points in the data pipeline (much easier than debugging raw SQL scripts).

Sorry mate - Data Flow data view is no match to SQL solution with using TEMP table to Load data and then Views, SPs, queries to process it which you can use anytime to monitor data movement. Dataview is only design time feature and doesnt help you much if package breaks down in the middle of a job.

Also - SQL solution although a bit more code will make packages easier to upgrade

My personal opinion - SSIS is not quite ready for ETL yet - do Extraxt Load Transform - and you are much better off|||I like being disagreed with on technical stuff - by defending my ideas on importing others we all improve.

OLE DB Command - row by row is way too slow - in a perfect world you would have something like UPDATE mytable FROM ... translated to SSIS.

Also - i forgot in me previous post -
I found a nugget today in Microsoft SQL language -
DELETE FROM x FROM x x ...|||

TheViewMaster wrote:

I like being disagreed with on technical stuff - by defending my ideas on importing others we all improve.

OLE DB Command - row by row is way too slow - in a perfect world you would have something like UPDATE mytable FROM ... translated to SSIS.

Also - i forgot in me previous post -
I found a nugget today in SQL language -
DELETE FROM x FROM x x ...

Right, but you cannot perform an "UPDATE mytable FROM anotherTable" in the data flow. (It shouldn't be expected that you could) You can do that today, and it is the preferred method, in the control flow via an Execute SQL task. Even if they did perform an "UPDATE mytable FROM anotherTable" in the data flow, you certainly wouldn't want that executing for EVERY row, would you? The control flow is the place for that operation. So again, are you asking for a GUI-based task in the control flow to perform batch updates?

|||Perhaps I am asking for wrong thing - but in SQL Stored Procedure all that could be done in one task -
Update existing
Insert new
Delete old
which is the bases of most of our ETL imports to our DB tables

At the moment we are using Data Flow to insert text files to db temp tables (In my case I sneak in occasional Derived column) and then do SQL processing.
I do like control of application (SSIS) to do the work, however benefits of SQL solution have outwighed my initial preference:
SQL has better maintainability - changes can be made to SPs, VIEWS without having to go through of hassle to recompile & deploy package
SQL - simpler processing model - TXT - TEMP table - VIEW - SP IMPORT table - VIEW - SP- Production table

However - SSIS benefits:
less TEMP tables and SQL code
ability to add info in Data Flow - derived column
customized filter duplicates Data Flow transform & able to do "INITCAP" more efficiently than in SQL

50/50|||

TheViewMaster wrote:

Perhaps I am asking for wrong thing - but in SQL Stored Procedure all that could be done in one task -
Update existing
Insert new
Delete old
which is the bases of most of our ETL imports to our DB tables

You're going to get me to 1,000 posts yet tonight, aren't you?! What you are talking about can be done in SSIS, though not inside one data flow. You need to think of the control flow as the foundation for all data work. Using your example, and assuming that order, here's how you'd do it.

Execute SQL task to update existing (update myTable FROM anotherTable) -> Data Flow (to insert new records) -> Execute SQL task (delete old)

Pretty easy, and perhaps faster than your stored procedure... Who knows. The data flow is a highly optimized engine for transporting data from point A (which could be one to many sources -- try that in your stored proc) to point B (which could be one to many destinations). Unfortunately updates aren't really part of data transportation, and is really at the mercy of the database engine.

|||1000 posts here we go - oh wait it's only my 135th post

Anyways - it s more complicated than

update

existing (update myTable FROM anotherTable) -> Data Flow (to

insert new records) -> Execute SQL task (delete old)

You need to determine which are new (lookup) - then which are changed (split) [referencing Jaime's article about SSIS - find columns in table A which are not in table B] - the SQL update, SQL delete (and trust me on this one - in SSIS books and docs they dont mention it at all - trial and error my friend to find out best way)

Somehow I think that INSERT in Store Proc is not that much slower that data flow import (and I would be rather in the mercy of DB engine than in the SSIS engine as the probablity is SSIS will be upgraded sooner)
|||

TheViewMaster wrote:


SQL has better maintainability - changes can be made to SPs, VIEWS without having to go through of hassle to recompile & deploy package

Now I *really* disagree with this statement. Using package configurations, you can create a package such that you'll never have to touch it again. I frequently use configurations to store sql so that I can make changes without touching the package. I can change databases, filenames, SQL, connection strings, etc... all with package configurations and without ever having to touch the package.

|||

TheViewMaster wrote:

1000 posts here we go - oh wait it's only my 135th post

You need to determine which are new (lookup) - then which are changed (split) [referencing Jaime's article about SSIS - find columns in table A which are not in table B] - the SQL update, SQL delete (and trust me on this one - in SSIS books and docs they dont mention it at all - trial and error my friend to find out best way)

Somehow I think that INSERT in Store Proc is not that much slower that data flow import (and I would be rather in the mercy of DB engine than in the SSIS engine as the probablity is SSIS will be upgraded sooner)

You did it! In response to the SQL delete, there are a TON of resources out there - Transact-SQL. Most anything you can do in a database, you can do in SSIS in one way or another... If you understand Transact-SQL, you can make SSIS do some pretty wonderful things!

I'll have to take this up another time, as my night has ended...

Phil

Friday, March 9, 2012

is sql 2005 based on imdb (in-memory database)?

Hi guys, i need a page at microsoft that says it, it's for a technical
proposal, until now i've just found oracle's timesten, i've searched at
google and microsoft but i have not results about.
Also i need to know if it supports journaling.
Regards.
I guess we would need to see the definitions of "in memory database" (that can mean a lot of things)
and journaling. If you mean what I think you mean, then the answer is no on both questions.
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
Blog: http://solidqualitylearning.com/blogs/tibor/
"Rick" <elmargaro@.hotmail.com> wrote in message news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
> Hi guys, i need a page at microsoft that says it, it's for a technical proposal, until now i've
> just found oracle's timesten, i've searched at google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
>
|||Rick wrote:
> Hi guys, i need a page at microsoft that says it, it's for a technical
> proposal, until now i've just found oracle's timesten, i've searched at
> google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
What feature are you looking for? SQL Server does cache data
"in-memory" but if you are looking for a deployable database engine or
one for embeddable systems then look at SQL Server Express or Mobile
Edition
"Journaling" could mean Differential or Transaction Log backups or
Versioning or Snapshots in SQL Server - depends on what your definition
of Journaling is.
SQL Server 2005 Features Comparison:
http://www.microsoft.com/sql/prodinf...-features.mspx
David Portas, SQL Server MVP
Whenever possible please post enough code to reproduce your problem.
Including CREATE TABLE and INSERT statements usually helps.
State what version of SQL Server you are using and specify the content
of any error messages.
SQL Server Books Online:
http://msdn2.microsoft.com/library/ms130214(en-US,SQL.90).aspx
|||ok, well journaling is logging all transactions, and if SQL has it then is
ok
Definition of: in-memory database
A database that keeps all active records in main memory rather than on disk.
Accessing in-memory records is considerably faster than retrieving them from
the disk.
"Rick" <elmargaro@.hotmail.com> escribi en el mensaje
news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
> Hi guys, i need a page at microsoft that says it, it's for a technical
> proposal, until now i've just found oracle's timesten, i've searched at
> google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
>
|||Yes, SQL Server logs all modifications in the transaction log.
SQL Server has a fairly sophisticated cache handling mechanism, but it essentially means that hot
pages will be cached (in memory).
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
Blog: http://solidqualitylearning.com/blogs/tibor/
"Rick" <elmargaro@.hotmail.com> wrote in message news:uURgArGTGHA.4920@.tk2msftngp13.phx.gbl...
> ok, well journaling is logging all transactions, and if SQL has it then is ok
> Definition of: in-memory database
> A database that keeps all active records in main memory rather than on disk. Accessing in-memory
> records is considerably faster than retrieving them from the disk.
>
> "Rick" <elmargaro@.hotmail.com> escribi en el mensaje
> news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
>
|||Thanks a lot!!!
"Tibor Karaszi" <tibor_please.no.email_karaszi@.hotmail.nomail.com> escribi
en el mensaje news:%235f7kPLTGHA.1572@.tk2msftngp13.phx.gbl...
> Yes, SQL Server logs all modifications in the transaction log.
> SQL Server has a fairly sophisticated cache handling mechanism, but it
> essentially means that hot pages will be cached (in memory).
> --
> Tibor Karaszi, SQL Server MVP
> http://www.karaszi.com/sqlserver/default.asp
> http://www.solidqualitylearning.com/
> Blog: http://solidqualitylearning.com/blogs/tibor/
>
> "Rick" <elmargaro@.hotmail.com> wrote in message
> news:uURgArGTGHA.4920@.tk2msftngp13.phx.gbl...
>

is sql 2005 based on imdb (in-memory database)?

Hi guys, i need a page at microsoft that says it, it's for a technical
proposal, until now i've just found oracle's timesten, i've searched at
google and microsoft but i have not results about.
Also i need to know if it supports journaling.
Regards.I guess we would need to see the definitions of "in memory database" (that c
an mean a lot of things)
and journaling. If you mean what I think you mean, then the answer is no on
both questions.
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
Blog: http://solidqualitylearning.com/blogs/tibor/
"Rick" <elmargaro@.hotmail.com> wrote in message news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl..
.
> Hi guys, i need a page at microsoft that says it, it's for a technical pro
posal, until now i've
> just found oracle's timesten, i've searched at google and microsoft but i
have not results about.
> Also i need to know if it supports journaling.
> Regards.
>|||Rick wrote:
> Hi guys, i need a page at microsoft that says it, it's for a technical
> proposal, until now i've just found oracle's timesten, i've searched at
> google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
What feature are you looking for? SQL Server does cache data
"in-memory" but if you are looking for a deployable database engine or
one for embeddable systems then look at SQL Server Express or Mobile
Edition
"Journaling" could mean Differential or Transaction Log backups or
Versioning or Snapshots in SQL Server - depends on what your definition
of Journaling is.
SQL Server 2005 Features Comparison:
http://www.microsoft.com/sql/prodin...e-features.mspx
David Portas, SQL Server MVP
Whenever possible please post enough code to reproduce your problem.
Including CREATE TABLE and INSERT statements usually helps.
State what version of SQL Server you are using and specify the content
of any error messages.
SQL Server Books Online:
http://msdn2.microsoft.com/library/ms130214(en-US,SQL.90).aspx
--|||ok, well journaling is logging all transactions, and if SQL has it then is
ok
Definition of: in-memory database
A database that keeps all active records in main memory rather than on disk.
Accessing in-memory records is considerably faster than retrieving them from
the disk.
"Rick" <elmargaro@.hotmail.com> escribi en el mensaje
news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
> Hi guys, i need a page at microsoft that says it, it's for a technical
> proposal, until now i've just found oracle's timesten, i've searched at
> google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
>|||Yes, SQL Server logs all modifications in the transaction log.
SQL Server has a fairly sophisticated cache handling mechanism, but it essen
tially means that hot
pages will be cached (in memory).
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
Blog: http://solidqualitylearning.com/blogs/tibor/
"Rick" <elmargaro@.hotmail.com> wrote in message news:uURgArGTGHA.4920@.tk2msftngp13.phx.gbl..
.
> ok, well journaling is logging all transactions, and if SQL has it then is
ok
> Definition of: in-memory database
> A database that keeps all active records in main memory rather than on dis
k. Accessing in-memory
> records is considerably faster than retrieving them from the disk.
>
> "Rick" <elmargaro@.hotmail.com> escribi en el mensaje
> news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
>|||Thanks a lot!!!
"Tibor Karaszi" <tibor_please.no.email_karaszi@.hotmail.nomail.com> escribi
en el mensaje news:%235f7kPLTGHA.1572@.tk2msftngp13.phx.gbl...
> Yes, SQL Server logs all modifications in the transaction log.
> SQL Server has a fairly sophisticated cache handling mechanism, but it
> essentially means that hot pages will be cached (in memory).
> --
> Tibor Karaszi, SQL Server MVP
> http://www.karaszi.com/sqlserver/default.asp
> http://www.solidqualitylearning.com/
> Blog: http://solidqualitylearning.com/blogs/tibor/
>
> "Rick" <elmargaro@.hotmail.com> wrote in message
> news:uURgArGTGHA.4920@.tk2msftngp13.phx.gbl...
>

is sql 2005 based on imdb (in-memory database)?

Hi guys, i need a page at microsoft that says it, it's for a technical
proposal, until now i've just found oracle's timesten, i've searched at
google and microsoft but i have not results about.
Also i need to know if it supports journaling.
Regards.I guess we would need to see the definitions of "in memory database" (that can mean a lot of things)
and journaling. If you mean what I think you mean, then the answer is no on both questions.
--
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
Blog: http://solidqualitylearning.com/blogs/tibor/
"Rick" <elmargaro@.hotmail.com> wrote in message news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
> Hi guys, i need a page at microsoft that says it, it's for a technical proposal, until now i've
> just found oracle's timesten, i've searched at google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
>|||Rick wrote:
> Hi guys, i need a page at microsoft that says it, it's for a technical
> proposal, until now i've just found oracle's timesten, i've searched at
> google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
What feature are you looking for? SQL Server does cache data
"in-memory" but if you are looking for a deployable database engine or
one for embeddable systems then look at SQL Server Express or Mobile
Edition
"Journaling" could mean Differential or Transaction Log backups or
Versioning or Snapshots in SQL Server - depends on what your definition
of Journaling is.
SQL Server 2005 Features Comparison:
http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx
--
David Portas, SQL Server MVP
Whenever possible please post enough code to reproduce your problem.
Including CREATE TABLE and INSERT statements usually helps.
State what version of SQL Server you are using and specify the content
of any error messages.
SQL Server Books Online:
http://msdn2.microsoft.com/library/ms130214(en-US,SQL.90).aspx
--|||ok, well journaling is logging all transactions, and if SQL has it then is
ok
Definition of: in-memory database
A database that keeps all active records in main memory rather than on disk.
Accessing in-memory records is considerably faster than retrieving them from
the disk.
"Rick" <elmargaro@.hotmail.com> escribió en el mensaje
news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
> Hi guys, i need a page at microsoft that says it, it's for a technical
> proposal, until now i've just found oracle's timesten, i've searched at
> google and microsoft but i have not results about.
> Also i need to know if it supports journaling.
> Regards.
>|||Yes, SQL Server logs all modifications in the transaction log.
SQL Server has a fairly sophisticated cache handling mechanism, but it essentially means that hot
pages will be cached (in memory).
--
Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://www.solidqualitylearning.com/
Blog: http://solidqualitylearning.com/blogs/tibor/
"Rick" <elmargaro@.hotmail.com> wrote in message news:uURgArGTGHA.4920@.tk2msftngp13.phx.gbl...
> ok, well journaling is logging all transactions, and if SQL has it then is ok
> Definition of: in-memory database
> A database that keeps all active records in main memory rather than on disk. Accessing in-memory
> records is considerably faster than retrieving them from the disk.
>
> "Rick" <elmargaro@.hotmail.com> escribió en el mensaje
> news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
>> Hi guys, i need a page at microsoft that says it, it's for a technical proposal, until now i've
>> just found oracle's timesten, i've searched at google and microsoft but i have not results about.
>> Also i need to know if it supports journaling.
>> Regards.
>|||Thanks a lot!!!
"Tibor Karaszi" <tibor_please.no.email_karaszi@.hotmail.nomail.com> escribió
en el mensaje news:%235f7kPLTGHA.1572@.tk2msftngp13.phx.gbl...
> Yes, SQL Server logs all modifications in the transaction log.
> SQL Server has a fairly sophisticated cache handling mechanism, but it
> essentially means that hot pages will be cached (in memory).
> --
> Tibor Karaszi, SQL Server MVP
> http://www.karaszi.com/sqlserver/default.asp
> http://www.solidqualitylearning.com/
> Blog: http://solidqualitylearning.com/blogs/tibor/
>
> "Rick" <elmargaro@.hotmail.com> wrote in message
> news:uURgArGTGHA.4920@.tk2msftngp13.phx.gbl...
>> ok, well journaling is logging all transactions, and if SQL has it then
>> is ok
>> Definition of: in-memory database
>> A database that keeps all active records in main memory rather than on
>> disk. Accessing in-memory records is considerably faster than retrieving
>> them from the disk.
>>
>> "Rick" <elmargaro@.hotmail.com> escribió en el mensaje
>> news:uJsRs1ETGHA.5156@.TK2MSFTNGP10.phx.gbl...
>> Hi guys, i need a page at microsoft that says it, it's for a technical
>> proposal, until now i've just found oracle's timesten, i've searched at
>> google and microsoft but i have not results about.
>> Also i need to know if it supports journaling.
>> Regards.
>>
>

Friday, February 24, 2012

Is one multi-key index faster than having lots of single-key indexes

Hi Guys/Gals,

I'm trying to improve the performance of our MS SQL 2000 database.

I've got a table with 5 int colums(among other things) and most SP's query data based on all five.

After some initial tests, my results are somewhat inconsistent/inconclusive.

I'd like to ask someone who's been doing this for quite some time.

Is it better to have one multi-key index(5 ints) or have a separate index for each individual column?

Thank you in advance,
Vlad OrlovskyI believe it depends upon the version of SQL Server, but I am pretty confidant that SQL 2000 for sure will use multiple single segment keys when available. (though this would likely add some overhead over a single index). As always, I would confirm with your data and testing (showing execution plan in Query Analyzer). If you ever use the columns individually (and not always starting with the one that is leftmost) then you would want the individual indexes.|||The SQL Server query engine is going to pick the best index and use it. It won't use multiple indexes for a single WHERE clause. So it will only use one of your indexes. If you are normally querying with all 5 columns in your WHERE clause, you will typically get better performance if you include all 5 columns in a single index. As always, it depends on the data, number of rows, the cardinality of the data, etc. to determine how much difference this will make in performance. But generally SQL Server doesn't have to work as hard if the WHERE clause is covered in a single index.

cs|||Books online for SQL 2000 says it will.

"Do not use multiple aliases for a single table in the same query to simulate index intersection. This is no longer necessary because SQL Server automatically considers index intersection and can make use of multiple indexes on the same table in the same query. For example, given the sample query:
SELECT * FROM lineitem
WHERE partkey BETWEEN 17000 AND 17100 AND
shipdate BETWEEN '1/1/1994' AND '1/31/1994"

SQL Server can exploit indexes on both the partkey and shipdate columns, and then perform a hash match between the two subsets to obtain the index intersection."|||really? that's not been my experience in the real world. not sure what conditions must be met for this to happen. i've just been doing quite a bit of query tuning and based on the execution plan, I have rarely seen SQL Server actually use more than one index. but thanks for tracking that down Douglas, good to know what the BOL says.

i'm not sure the multiple alias thing is quite the same animal anyway. just sharing what I've seen based on personal experience. as always, it's worth trying different approaches to see what performs best in a particular case.

cs|||Thanks for your tips guys. "Execution plan" thing is a very useful feature.
I did some testing on 93K+ records. And it turns out that having one single multi-key index is better than multiple indexes when selecting all keys in the WHERE clause.

Once I got my multi-key index to sort in the right order, time spent on final "Sorting" of the data has disappeared(that was something like .0183 I/O Cost).

Sincerely,
Vlad Orlovsky|||Yes, sorting can be an issue when using multiple keys.