Thursday, March 29, 2012
Configuration set up
that i need to consider when installing multiple instance on the 2nd node
of a cluster. Ex details about how memory allocation, processors etc . This
way it wouldnt impact performance of existing sql running on a
cluster.any help on this will be greatly appreciated.
--
Message posted via http://www.sqlmonster.comJust a few more thigs ot add up. As i saif its an active/passive cluster
set up with currently node 1 online.
System details on Node 1 are
- 8 Processors with 3GHz
- Total Physical Memory = 8,289,320 KB
- Available Physical Memory = 523504 KB
- Total Virtual Memory = 18,483,688 KB
- Available Virtual Memory = 2,888,536 KB
- Page File Space = 10,194,368 KB
System detail on Node 2 are
- Total Physical memory = 8,129,320 KB
- Available Physical memory = 7,626,308 KB
- Total Virtual Memory = 18,484,176 KB
- Available Virtual Memory = 17,292,940 KB
- Page File Space = 10,194,368 KB
My second instance is on Node2 . What should i consider/change so that
there isnt a bad impacted when 2nd instance is up and running and if things
failover from node 1 to Node2.
--
Message posted via http://www.sqlmonster.comsqlsql
Configuration set up
that i need to consider when installing multiple instance on the 2nd node
of a cluster. Ex details about how memory allocation, processors etc . This
way it wouldnt impact performance of existing sql running on a
cluster.any help on this will be greatly appreciated.
Message posted via http://www.sqlmonster.com
Just a few more thigs ot add up. As i saif its an active/passive cluster
set up with currently node 1 online.
System details on Node 1 are
- 8 Processors with 3GHz
- Total Physical Memory = 8,289,320 KB
- Available Physical Memory = 523504 KB
- Total Virtual Memory = 18,483,688 KB
- Available Virtual Memory = 2,888,536 KB
- Page File Space = 10,194,368 KB
System detail on Node 2 are
- Total Physical memory = 8,129,320 KB
- Available Physical memory = 7,626,308 KB
- Total Virtual Memory = 18,484,176 KB
- Available Virtual Memory = 17,292,940 KB
- Page File Space = 10,194,368 KB
My second instance is on Node2 . What should i consider/change so that
there isnt a bad impacted when 2nd instance is up and running and if things
failover from node 1 to Node2.
Message posted via http://www.sqlmonster.com
Configuration set up
that i need to consider when installing multiple instance on the 2nd node
of a cluster. Ex details about how memory allocation, processors etc . This
way it wouldnt impact performance of existing sql running on a
cluster.any help on this will be greatly appreciated.
Message posted via http://www.droptable.comJust a few more thigs ot add up. As i saif its an active/passive cluster
set up with currently node 1 online.
System details on Node 1 are
- 8 Processors with 3GHz
- Total Physical Memory = 8,289,320 KB
- Available Physical Memory = 523504 KB
- Total Virtual Memory = 18,483,688 KB
- Available Virtual Memory = 2,888,536 KB
- Page File Space = 10,194,368 KB
System detail on Node 2 are
- Total Physical memory = 8,129,320 KB
- Available Physical memory = 7,626,308 KB
- Total Virtual Memory = 18,484,176 KB
- Available Virtual Memory = 17,292,940 KB
- Page File Space = 10,194,368 KB
My second instance is on Node2 . What should i consider/change so that
there isnt a bad impacted when 2nd instance is up and running and if things
failover from node 1 to Node2.
Message posted via http://www.droptable.com
Sunday, March 25, 2012
Config files get lost...
I created a project with multiple packages. I created a global
config file that all packages reference. I also created a config file
for each package that contains the package specific settings. I
checked it all into TFS. I went to a different machine and checked it
all out. Upon loading a package into the IDE I got the following 3
warnings.
Warning loading MT_LSE_PROD_StageLoad.dtsx: The
configuration file "MT_LSE_PROD_StageLoad.dtsConfig" cannot be found.
Check the directory and file name.
e:\contentloader\sprint1a\MT_LSE_PROD_StageLoad.dtsx
Warning
loading MT_LSE_PROD_StageLoad.dtsx: The configuration file
"Environment.dtsConfig" cannot be found. Check the directory and file
name. e:\contentloader\sprint1a\MT_LSE_PROD_StageLoad.dtsx
Warning
loading MT_LSE_PROD_StageLoad.dtsx: Failed to load at least one of the
configuration entries for the package. Check configurations entries and
previous warnings to see descriptions of which configuration failed.
e:\contentloader\sprint1a\MT_LSE_PROD_StageLoad.dtsx
Anyideas? And yes, the files *ARE* there! I tried building the project
and it builds. I also tried doing a deployment build and that too
built. I am so confused!!!
StarPilot wrote:
I created a project with multiple packages. I created a global config file that all packages reference. I also created a config file for each package that contains the package specific settings. I checked it all into TFS. I went to a different machine and checked it all out. Upon loading a package into the IDE I got the following 3 warnings.
Warning loading MT_LSE_PROD_StageLoad.dtsx: The configuration file "MT_LSE_PROD_StageLoad.dtsConfig" cannot be found. Check the directory and file name. e:\contentloader\sprint1a\MT_LSE_PROD_StageLoad.dtsx
Warning loading MT_LSE_PROD_StageLoad.dtsx: The configuration file "Environment.dtsConfig" cannot be found. Check the directory and file name. e:\contentloader\sprint1a\MT_LSE_PROD_StageLoad.dtsx
Warning loading MT_LSE_PROD_StageLoad.dtsx: Failed to load at least one of the configuration entries for the package. Check configurations entries and previous warnings to see descriptions of which configuration failed. e:\contentloader\sprint1a\MT_LSE_PROD_StageLoad.dtsx
Any ideas? And yes, the files *ARE* there! I tried building the project and it builds. I also tried doing a deployment build and that too built. I am so confused!!!
Could it be a permissions issue? I assume the account running the packages has access to e:\contentloader\sprint1a\
-Jamie
|||Not a permission issue. I've granted every account access to the file system (one of the "joys" of being in a dev environment). Also, I see this behavior in VS.NET not SQL. I do a get latest or check out of the project on a brand new dev machine and it is VS.NET giving me the warnings. I compile (ignoring the warnings) and it works just fine. I turn deployment on and build and the deployment directory has the packages and config files. So, they are there and being used - it's VS.NET that's winpering over it...
Tuesday, March 20, 2012
Conditional XQuery: How to select a desirable node when it occurs multiple times
I would very much appreicate if someone could help me with the following
Return CountryCodes node based on the following rules:
(1) Ignore <AlternativeState> completely
(2) When <CurrentEvent>MarketSize</CurrentEvent> get CountryCodes from <MarketSize> node only
(3) When <CurrentEvent>MarketShare</CurrentEvent> get CountryCodes from <OtherEvents> node only
(4) When <CurrentEvent> doesn't exist then xml would have only one CountryCodes; get that node
I have come up with the following so far which is far from what is desirable
SELECT UsageID, Countries.Code.query('
for $CountryCode in .
return data($CountryCode)
') AS CountryCodes
FROM UsageAnalysis
CROSS APPLY xmlState.nodes('//*[not(self::AlternativeState)]/*/CountryCodes') AS Countries(Code)
GO
Please keep in mind xml comes from a table column.
The following are three possible simplified cases
Case 1
<State>
<StatsState>
<CurrentState>
<MarketSize>
<CountryCodes>KT,LC,VG,SU,TT,UY,VE</CountryCodes>
</MarketSize>
<CurrentEvent>MarketSize</CurrentEvent></CurrentState>
</StatsState>
</State>
Case 2
<State>
<DefinitionState>
<CountryCodes>BR</CountryCodes>
</DefinitionState>
</State>
Case 3
<State>
<StatsState>
<CurrentState>
<OtherEvents>
<CountryCodes>FR</CountryCodes>
<AlternativeState>
<OtherEvents>
<CountryCodes>FR</CountryCodes>
</OtherEvents>
<MarketSize>
<CountryCodes>FR,FP,FG</CountryCodes>
</MarketSize>
<CurrentEvent>MarketShare</CurrentEvent>
</AlternativeState>
</OtherEvents>
<CurrentEvent>MarketShare</CurrentEvent>
<MarketSize>
<CountryCodes>,FR</CountryCodes>
</MarketSize>
</CurrentState>
</StatsState>
</State>
Hope this solve your problem:
Code Snippet
declare @.x xml
set @.x =
'<State>
<StatsState>
<CurrentState>
<MarketSize>
<CountryCodes>KT,LC,VG,SU,TT,UY,VE</CountryCodes>
</MarketSize>
<CurrentEvent>MarketSize</CurrentEvent>
</CurrentState>
</StatsState>
</State>
<State>
<DefinitionState>
<CountryCodes>BR</CountryCodes>
</DefinitionState>
</State>
<State>
<StatsState>
<CurrentState>
<OtherEvents>
<CountryCodes>FR</CountryCodes>
<AlternativeState>
<OtherEvents>
<CountryCodes>FR</CountryCodes>
</OtherEvents>
<MarketSize>
<CountryCodes>FR,FP,FG</CountryCodes>
</MarketSize>
<CurrentEvent>MarketShare</CurrentEvent>
</AlternativeState>
</OtherEvents>
<CurrentEvent>MarketShare</CurrentEvent>
<MarketSize>
<CountryCodes>,FR</CountryCodes>
</MarketSize>
</CurrentState>
</StatsState>
</State>'
select @.x.query('
for $s in /State
return
if (data(($s/StatsState/CurrentState/CurrentEvent)[1]) = "MarketSize")
then $s/StatsState/CurrentState/MarketSize/CountryCodes
else (
if (data(($s/StatsState/CurrentState/CurrentEvent)[1]) = "MarketShare")
then $s/StatsState/CurrentState/OtherEvents/CountryCodes
else $s//CountryCodes
)
')
|||Should this also be returned?
<CountryCodes>,FR</CountryCodes>
Please excuse me because I am rather new to the XML sector. I am confused by the question and the answer. I coded this up:
declare @.x xml
set @.x =
'<State>
<StatsState>
<CurrentState>
<MarketSize>
<CountryCodes>KT,LC,VG,SU,TT,UY,VE</CountryCodes>
</MarketSize>
<CurrentEvent>MarketSize</CurrentEvent>
</CurrentState>
</StatsState>
</State>
<State>
<DefinitionState>
<CountryCodes>BR</CountryCodes>
</DefinitionState>
</State>
<State>
<StatsState>
<CurrentState>
<OtherEvents>
<CountryCodes>FR</CountryCodes>
<AlternativeState>
<OtherEvents>
<CountryCodes>FR</CountryCodes>
</OtherEvents>
<MarketSize>
<CountryCodes>FR,FP,FG</CountryCodes>
</MarketSize>
<CurrentEvent>MarketShare</CurrentEvent>
</AlternativeState>
</OtherEvents>
<CurrentEvent>MarketShare</CurrentEvent>
<MarketSize>
<CountryCodes>,FR</CountryCodes>
</MarketSize>
</CurrentState>
</StatsState>
</State>'
select coalesce (
nullif(t.c.query('./StatsState/CurrentState/MarketSize/CountryCodes').value('.','varchar(20)'), ''),
nullif(t.c.query('./StatsState/CurrentState/OtherEvents/CountryCodes').value('.','varchar(20)'),''),
t.c.query('./DefinitionState/CountryCodes').value('.','varchar(20)'))
as CountryCodes
from @.x.nodes('State') t(c)
and received this result:
/*
CountryCodes
--
KT,LC,VG,SU,TT,UY,VE
BR
,FR
*/
Do the correct results need to include the markup such that the results should look more like this:
/*
CountryCodes
--
<CountryCodes>KT,LC,VG,SU,TT,UY,VE</CountryCodes><CountryCodes>BR</CountryCodes><CountryCodes>,FR</CountryCodes>
*/
(Trying to learn what is going on -- and I'm a bit confused.)
I appreciate the help.
|||Jinghao, thanks very much. Your provided snippet does exactly what I have been trying to achieve. The only change I decided to introduce is to use data() so that I could get the scalar values for country codes as follows:
select @.x.query('
for $s in /State
return
if (data(($s/StatsState/CurrentState/CurrentEvent)[1]) = "MarketSize")
then data($s/StatsState/CurrentState/MarketSize/CountryCodes)
else (
if (data(($s/StatsState/CurrentState/CurrentEvent)[1]) = "MarketShare")
then data($s/StatsState/CurrentState/OtherEvents/CountryCodes)
else data($s//CountryCodes)
)
')
/*
Result set from your query:
<CountryCodes>KT,LC,VG,SU,TT,UY,VE</CountryCodes>
<CountryCodes>BR</CountryCodes>
<CountryCodes>FR</CountryCodes>
Results after introducing data()
KT,LC,VG,SU,TT,UY,VE BR FR
*/
Now I could use a function call to return a list of country codes.
Thanks again for your help.
|||Kent,
I must say that it took me a while to fully understand the solution you suggested by clever use of COALESCE. It did exactly what I was trying to achieve. i.e get a list of selected country codes.
/*
KT,LC,VG,SU,TT,UY,VE
BR
FR
*/
I just wanted to have a list of countries, without having any markups. i.e. just the scalar values of <countryCodes>
Your response has shown me another use of COALESCE function and I very much appreciate your help
Monday, March 19, 2012
Conditional Split Transformation
I have set up a conditional split task which i want to use with a flat file data source. The flat file consists of multiple rows of data where the first column is an ID. The conditional split is based on the first column value.
What i'd like to know is if in the conditional split once it splits the data can the output be transformed. e.g. If one of the values coming from the flat file requires to be either split up into two values or requires to be passed into a stored procedure to manipulate it, can this be done?
Hope that makes sense.
All help is greatly appreciated, TIA.
Cheers,
Grant
Well in least words, YES!
Output of conditional split can be simply passed to any other control to manipulate in whatever way u like
|||Hi,thanks for the reply. I have just realised what a stupid question it was. I have just dragged a constraint from the conditional loop and see that a dialog box allows you to select the output. My apologies, and thanks for the help.
Cheers,
Grant|||Hi Again,
Out of interest once i have the row of data i want to process, how would i go about doing the actually processing.
The first this i need to do is to pass once of the row values into a stored procedure and return a variable. Whta would be the best command for this. In the control flow i would have used an Execute SQL task, but this doesn't appear to be available.
Do i have to script anything like this once i have the row?
Thanks again,
Grant
Conditional Split Transformation
Hi
Can any one please tell me how do I give multiple conditions in Conditional Split Transformation.
Exp:
I have few columns as
ReturnSUK
TimeSUK
EntitySUK
PeriodSUK
Now the condition should be :
! ISNULL (ReturnSUK) & ! ISNULL (TimeSUK) & ! ISNULL (EntitySUK) &! ISNULL (PeriodSUK)
Please provide me the proper condition for the above mentioned requirement.
Thank you
Use two & symbols:!ISNULL(ReturnSUK) && !ISNULL(TimeSUK) && ....|||
Thank you Its Working
If i need to give the same condition for OR (^) rather then AND (&) so the condition would be
this :
ISNULL(ReturnSUK) ^ ISNULL(TimeSUK) ^ ISNULL(BankSUK) ^ ISNULL(EntitySUK) ^ ISNULL(PeriodSUK)
or ,can you please help me in this too.
Thank you
|||Or is written by using two || symbols:TEST1 || TEST2 || TEST3 ....
Sunday, March 11, 2012
conditional relationship to multiple tables
I have what I think is an interesting database issue. In a nutshell, I want to know if it is possible and if so how one can setup a table to optionally relate to different tables. Let me explain, consider the following two tables (in simple psuedo-sql syntax):
Table Messages
------
ID - Int, PK
Name - varchar
Type - varchar
Table MessageFields
------
ID - Int, PK
PID - Int, FK
Name - varchar
Type - varchar
Size - int
Relationship:
MessageFields.PID relates to Messages.ID
These tables store information used to parse messages. They are related via a straight forward one-to-many relationship where the PID in MessageFields is the FK that relates to ID in Messages. In this simple kind of relationship, it is easy to setup referential integrity and cascaded deletes, etc...
Now, this worked fine as long as each message simply had it's fields and that was it. However, some fields can have sub-fields (if field is an array, it will have x number of subfields corresponding to each array element). Also, those sub-fields can have sub-fields. In fact, there is no set limit, although in practice it will probably only go 3 levels deep in subfields.
Anyway, the way to represent an arbirary subfield structure like this is to use a recursive table structure, where the FK field in the table (PID in this case) refers to the PK field in the same table (ID), like so:
Table MessageFields
------
ID - Int, PK
PID - Int, FK
Name - varchar
Type - varchar
Size - int
Relationship:
MessageFields.PID relates to MessageFields.ID
I believe you can even setup referential integrity and cascaded deletes on such a self-referecing, recursive setup.
The problem is, we still need to relate the MessageFields table to the Messages table. Sooo, the only way to do this that I have come up with is a setup like this:
Table Messages
------
ID - Int, PK
Name - varchar
Type - varchar
Table MessageFields
------
ID - Int, PK
PID - Int, FK
ParType - char(1)
Name - varchar
Type - varchar
Size - int
Relationship:
If ParType = 'M' then
MessageFields.PID relates to Messages.ID
elseif ParType = 'F' then
MessageFields.PID relates to MessageFields.ID
endif
Problem is, I don't think it is possible to setup a relationship (and referential integrity) on a condition like this.
So, my question is, is there a way to setup such a relationship? Is this even a good idea, or is there some standard, better way to setup these tables? Of course, I know I can just setup the tables this way and NOT use a defined relationship, and just be careful in the code that I'm not inserting something incorrect, but I'd rather not. One idea I did have was use a trigger to enforce my referential integrity. The trigger could check inserts into the messagefields table and test the value of partype, then test to see if the inserted row matches the appropriate column in the appropriate table. But before I go down that road, I'd like to see what someone else thinks.
Thanks much for any info/insight someone can give me on this.It's an interesting problem and one I've recently encountered. In our logical model we used subtypes. We have a 'type' of locator with 'subtypes' of physical, tele and postal. So we need to relate entities to locators (many-to-many) based on the type of locator.
entity:
entity_id
entity_locator_participation
entity_id
locator_id
locator_type
tele_locator
locator_id
phone_nbr
email_addr
etc...
postal_locator
locator_id
addr1
addr2
city
etc...
We need to be able to relate entity_locator_participation to tele_locator, postal_locator, or physical_locator depending on the value of the locator_type. For now, we just have no relationship and are maintaining it through code(stored procedures), but it's ugly. We've also thought about encapsulating the logic in triggers.
It's very similar to the probem you bring up. To the best of my knowledge, there is no way to do this, so I'm interested to see what other solutions people have come up with!
-Loach|||Yes, I don't think it is acutally going to be possible to define the conditional relationship directly in sqlserver. I'm leaning towards using a trigger, so at least you can still control the relationship at a db level, and the front end programmers don't have to perform the check. I tested the following trigger, which seems to work for check referential integrity on inserts:
CREATE TRIGGER [trigger1] ON [dbo].[MessageFields]
FOR INSERT
AS
begin
declare @.id int
declare @.partype varchar
declare @.pid int
declare @.result int
set @.id = (select id from inserted)
set @.pid = (select pid from inserted)
set @.partype = (select partype from inserted)
if @.partype = 'm' or @.partype = 'M'
begin
set @.result = (select count(*) from message where id = @.pid)
if @.result = 0
begin
print 'problem - no related row in message!'
delete from messagefields where id = @.id
end
end
else if @.partype = 'f'
begin
set @.result = (select count(*) from messagefields where id = @.pid)
if @.result = 0
begin
print 'problem - no related row in messagefields!'
delete from messagefields where id = @.id
end
end
end
Now I guess I need to setup the triggers for the update and especially the delete. The delete trigger will be a nested/recursive trigger. This shouldn't be a problem, as sql server allows like 32 levels of trigger nesting, and we'll never get that deep in our hierarchy.
Tony|||Originally posted by foxybanjo
Yes, I don't think it is acutally going to be possible to define the conditional relationship directly in sqlserver. I'm leaning towards using a trigger, so at least you can still control the relationship at a db level, and the front end programmers don't have to perform the check. I tested the following trigger, which seems to work for check referential integrity on inserts:
CREATE TRIGGER [trigger1] ON [dbo].[MessageFields]
FOR INSERT
AS
begin
declare @.id int
declare @.partype varchar
declare @.pid int
declare @.result int
set @.id = (select id from inserted)
set @.pid = (select pid from inserted)
set @.partype = (select partype from inserted)
if @.partype = 'm' or @.partype = 'M'
begin
set @.result = (select count(*) from message where id = @.pid)
if @.result = 0
begin
print 'problem - no related row in message!'
delete from messagefields where id = @.id
end
end
else if @.partype = 'f'
begin
set @.result = (select count(*) from messagefields where id = @.pid)
if @.result = 0
begin
print 'problem - no related row in messagefields!'
delete from messagefields where id = @.id
end
end
end
Now I guess I need to setup the triggers for the update and especially the delete. The delete trigger will be a nested/recursive trigger. This shouldn't be a problem, as sql server allows like 32 levels of trigger nesting, and we'll never get that deep in our hierarchy.
Tony
I had a similar problem in my database and I used this approach:
I wanted to create some tables to hold some survey template data. The main table held the name of the template and some other general information. There were a number of other tables representing each type of template. A one-many relationship was created between the template table and each of the survey tables. A template type Id in the template table would identify which survey table was to be used and this was set in a view. The table set up looks like:
Template Table:
TemplateID - PK
TemplateName
TemplateTypeID - identifies which template table you are using
Customer Survey Template
CustomerSurveyTemplateID - PK
TemplateID - FK (one - many with the template table)
{other customer survey template columns}
Void Log Survey Template
VoidLogSurveyTemplateID - PK
TemplateID - FK (one - many with the template table)
{other void log survey template columns)
A view is used for each survey filtered by the templatetypeId . I found this to be very flexible and versatile and easy to use in the front end (in my case an Access database with a data grid)
Friday, February 17, 2012
Concurrent Database Users License
as "concurrent database users licenses", does that imply
that multiple devices could have the possibility of
accessing the server but only the number given can access
it simultaneously or is this limit on the number of
devices that can have the potential of accessing the
server? example: 10 concurrent database users licenses
provided as part of package. does this allow for 50
devices to have an application loaded that could access a
SQL server database but limit the number of devices that
could actually access it to 10 or is the number of devices
that could have the potential to access the database only
10?
What product is this for? I might be wrong, but I don't think SQL
Server licensing works this way any more. Can you post more context?
Steve Kass
Drew University
anonymous@.discussions.microsoft.com wrote:
>when the nubmer of licenses provided are referred to
>as "concurrent database users licenses", does that imply
>that multiple devices could have the possibility of
>accessing the server but only the number given can access
>it simultaneously or is this limit on the number of
>devices that can have the potential of accessing the
>server? example: 10 concurrent database users licenses
>provided as part of package. does this allow for 50
>devices to have an application loaded that could access a
>SQL server database but limit the number of devices that
>could actually access it to 10 or is the number of devices
>that could have the potential to access the database only
>10?
>
Concurrent Cube Processing
Is it possible to have multiple incremental updates to the same cube or partition? We have imports into the same cube that would occurr at different times as the data from multiple business areas is processed and becomes available to the cube for processing.
Further to this, is it possible to query the cube when processing is taking place? If so, what data is visible? Is the data visible as each row is added to the cube or is it only available one the transaction is 'commited'.
This is quite important for us since it will define the partitioning and processing strategy.
No replies yet! I can't believe no one knows the answer to this...Re: whether you can query the cube while processing is occurring - in Harinath & Quinn's book, I vaguely remember a section where it stated that the existing measure groups stay online until the new one is created, though I can't say I've noticed this behavior (typically when I fully process a cube the old one is immediately thrown out :-( )|||
I was actually wondering if you can have multiple independent processes doing updates to the same cube, but in different partitions, whilst still being available for querying of the existing data.
Here is my scenario:
The company is a financial company with multiple business areas with independent systems. Each day a whole series of batch ETL processes are carried out to consolidate the data into a DW/Reporting Database. This happens at different times for different business areas and the time at which these happen are not predictable nor is the order set. The users want the data asap so we don't want to wait for the last data import to complete before starting to process the cubes/partitions. Hence, we want to create and process partitions on an ad hoc basis and at any time and concurrently with any other processing. I want to know if Analysis Services could handle this without barfing.
|||If you design your partition strategy correctly such that a batch update of a given partition occurs and then you kick off an incremental update for that paritition and it completes before you need to kick off another incremental update for that same partition, then yes, SSAS can handle multiple partition processing transactions concurrently (in parallel). What I don't believe you can do is kick off multiple incremental update processes agains the SAME partition at the same time...
As for whether data is available or not, that depends on the type of processing you are doing. For incremental updates and for refresh data processing of a given partition, that partition's data remains online during the processing (as the processing is wrapped in a transaction that does not affect the existing partition structure until it commits). However, if you do a rebuild processing action on a partition, that partition (and its associated measure group) becomes unavailable as soon as the transaction starts and it is not available until the transaction completes. Here's a link to a white paper describing the various processing types available for various objects and the ramifications of each:
http://msdn2.microsoft.com/en-us/library/ms345142.aspx
HTH,
Dave Fackler
|||Hi Dave,
Your last paragraph is not entirely accurate. Full processing can also be done in a transaction (in fact processing a single object is done in an implied transaction) and the old data will be available for querying while the processing is taking place and then at the end of the transaction the old data is swapped out and the new data is then made available. The difference with full processing is that dependant objects will become unprocessed.
So if you full process a dimension, all the cubes that use that dimension will become unprocessed at the end of the transaction (you could manage this by full processing the dimension and relevant cubes in a single transaction).
Concurrent Backup/Restores
is processing a backup or restore. How will this affect performance. I am
trying to restore several large databases and do not want to have to do this
sequentially if if possible. Does it make any difference if I am running EM
on different PCs?
TIA
Rob
Don't use EM, use QA instead along with the BACKUP and RESTORE commands. You
will be limited only by processor and disk bandwidth.
Andrew J. Kelly SQL MVP
"Rob Diamant" <rob@.usi.com> wrote in message
news:Ol%234qV5QGHA.196@.TK2MSFTNGP10.phx.gbl...
> Can I have multiple instances of Enterprise Manager running while each one
> is processing a backup or restore. How will this affect performance. I am
> trying to restore several large databases and do not want to have to do
> this sequentially if if possible. Does it make any difference if I am
> running EM on different PCs?
> TIA
> Rob
>
Concurrent Backup/Restores
is processing a backup or restore. How will this affect performance. I am
trying to restore several large databases and do not want to have to do this
sequentially if if possible. Does it make any difference if I am running EM
on different PCs?
TIA
RobDon't use EM, use QA instead along with the BACKUP and RESTORE commands. You
will be limited only by processor and disk bandwidth.
--
Andrew J. Kelly SQL MVP
"Rob Diamant" <rob@.usi.com> wrote in message
news:Ol%234qV5QGHA.196@.TK2MSFTNGP10.phx.gbl...
> Can I have multiple instances of Enterprise Manager running while each one
> is processing a backup or restore. How will this affect performance. I am
> trying to restore several large databases and do not want to have to do
> this sequentially if if possible. Does it make any difference if I am
> running EM on different PCs?
> TIA
> Rob
>
Concurrent Backup/Restores
is processing a backup or restore. How will this affect performance. I am
trying to restore several large databases and do not want to have to do this
sequentially if if possible. Does it make any difference if I am running EM
on different PCs?
TIA
RobDon't use EM, use QA instead along with the BACKUP and RESTORE commands. You
will be limited only by processor and disk bandwidth.
Andrew J. Kelly SQL MVP
"Rob Diamant" <rob@.usi.com> wrote in message
news:Ol%234qV5QGHA.196@.TK2MSFTNGP10.phx.gbl...
> Can I have multiple instances of Enterprise Manager running while each one
> is processing a backup or restore. How will this affect performance. I am
> trying to restore several large databases and do not want to have to do
> this sequentially if if possible. Does it make any difference if I am
> running EM on different PCs?
> TIA
> Rob
>
Tuesday, February 14, 2012
Concerning .net and SQL Procedures
Recently i had to write a script in sql to compare multiple tables to get a result of items that do not conform to certain business logic. In doing so i wrote all of this information into a sql parameter which branches out to a few other parameters within the parameter.
Now if you need the code just let me ask, but this is a general question to see if it has occured for anyone else.
The problem i am recieving is when i access the code from a .net windows application it tells me:
Error Message:
Insert Error: Column name or number of supplied values does not match table definition.
Insert Error: Column name or number of supplied values does not match table definition.
Procedure Errored On: val_GetDuplicateItemsFromAssignment
Line Number: 16
However when i run the sql parameter within SQL it accesses it just find. This is using the same parameter values.
Does anyone know why this could be happening?
Please do show the code used to insert the values.Concept of Oracle Grid Architecture
We knew that there is a concept called Oracle Grid Architecture through
which we can utilise
resources of an under utilised Server in Multiple Server environemnt.
For Eg :
Pool the clusters of servers to make a single logical entity using Oracle
10g Grid architecture.More flexibility to adapt to peak loads thus achieving
better hardware utilization.All the applications have a chance to scale upto
to the maximum capacity of the Grid rather then individual server maximum
capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
results in 15 GB of RAM available for utilization. Whereas in the current
method each application associated with a server can only scale upto 3 GB.
Do we have something similar in SQL Server Scenario?
Your replies would be highly appreciated.
Regards
Sathian
Sathian wrote:
> Dear All,
> We knew that there is a concept called Oracle Grid Architecture through
> which we can utilise
> resources of an under utilised Server in Multiple Server environemnt.
> For Eg :
> Pool the clusters of servers to make a single logical entity using Oracle
> 10g Grid architecture.More flexibility to adapt to peak loads thus achieving
> better hardware utilization.All the applications have a chance to scale upto
> to the maximum capacity of the Grid rather then individual server maximum
> capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
> results in 15 GB of RAM available for utilization. Whereas in the current
> method each application associated with a server can only scale upto 3 GB.
> Do we have something similar in SQL Server Scenario?
> Your replies would be highly appreciated.
>
> Regards
> Sathian
Microsoft just sees the architecture slightly differently. It advocates
implementing the application cluster through a .NET tier rather than
the database tier. Actually Microsoft claims there have been working
examples of application clusters using SQL Server 2000 since before
Oracle did the same.
More at:
http://www.microsoft.com/sql/prodinf...e/default.mspx
http://www.microsoft.com/sql/prodinf...enchmarks.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
|||No. Being able to simply plug a second server in and double the capacity or
to fully take advantage of an "underutilized" server is a bunch of marketing
BS. The real-world implementation isn't even close to the marketing.
Take the pure Oracle point of view and take a hard look at what is going on.
I have 5 servers each with 3 GB of RAM in them setup in a "grid"
architecture. That's great. Do I get to utilize 100% of the 15GB? Nope.
There are several reasons. User1 executes "nasty query 1" by using the
resources on server3. At the same time, User2 executes "nasty query 1"
using the resources on server4. So, both are going after exactly the same
data from this shared database on the backside. Both machines have to pull
the data, which can cause disk contention. Both machines have to calculate
the results, because I'm not aware of any ability for a machine to start a
calc on one server and finish it on another, so you are duplicating the
work. The data cache can possibly contain 2 copies of the same data set
which is in effect wasted memory. The whole thing gets even more
interesting when two people change the same piece of data routed through 2
different servers and now Oracle has to arbitrate a winner and someone gets
a failure sent back to them. The list of issues goes on and on and on.
This isn't as simple a "plug in another server". I've worked with companies
who implemented Oracle RAC. I know of a couple who got very good results
from it with near linear scaling, but they spent thousands of DBA man-hours
re-architecting applications, redesigning databases, beefing up
infrastructure, and very carefully analyzing data access patterns before
implementing it and they got near linear scaling up to 4 nodes because they
had access patterns which guaranteed that data requests would not overlap.
I know of several companies that added a second server and only got about a
50% increase and it dropped off very rapidly after that to the point where
the 4th server only gained them about 5% of the total capacity that was
added, because they had lots of these overlapping requests and wound up with
severe contention in the disk resources as well as lots of wasted processing
time.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"Sathian" <sathian.t@.in.bosch.com> wrote in message
news:dsslp4$k99$1@.ns2.fe.internet.bosch.com...
> Dear All,
> We knew that there is a concept called Oracle Grid Architecture through
> which we can utilise
> resources of an under utilised Server in Multiple Server environemnt.
> For Eg :
> Pool the clusters of servers to make a single logical entity using Oracle
> 10g Grid architecture.More flexibility to adapt to peak loads thus
> achieving
> better hardware utilization.All the applications have a chance to scale
> upto
> to the maximum capacity of the Grid rather then individual server maximum
> capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
> results in 15 GB of RAM available for utilization. Whereas in the current
> method each application associated with a server can only scale upto 3 GB.
> Do we have something similar in SQL Server Scenario?
> Your replies would be highly appreciated.
>
> Regards
> Sathian
>
|||RAC is different from GRID.
A lot of the issues that you are describing are RAC issues (Real Application
Clusters) where multiple servers share a common database. RAC is the current
name/evolution/version of what used to be called the Oracle Parallel System
(OPS), which in one form or another goes back to Oracle 6.2 (before SQL
Server existed, as such).
Grid is a different approach, as I understand it. It is closer to the old
Tandem Non-Stop/Stratus envrionment where application processes are assigned
to various servers in a cluster or Grid (like electrical power lines and
substations.) If you have excess cpu capacity on 1 server, you can have it
run a clone application process. Also if your processing needs for a given
application which has multiple processes have decreased, you can drop one of
the processes and reassign the resources elsewhere. Additionally, if a
server goes down then the application process can be assigned to another
server to minimize downtime. At least this is the sales pitch.
GRID sits on RAC, so if you have RAC problems your GRID will suffer, but
GRID is something different.
Joseph R.P. Maloney, CSP,CCP,CDP
"Michael Hotek" wrote:
> No. Being able to simply plug a second server in and double the capacity or
> to fully take advantage of an "underutilized" server is a bunch of marketing
> BS. The real-world implementation isn't even close to the marketing.
> Take the pure Oracle point of view and take a hard look at what is going on.
> I have 5 servers each with 3 GB of RAM in them setup in a "grid"
> architecture. That's great. Do I get to utilize 100% of the 15GB? Nope.
> There are several reasons. User1 executes "nasty query 1" by using the
> resources on server3. At the same time, User2 executes "nasty query 1"
> using the resources on server4. So, both are going after exactly the same
> data from this shared database on the backside. Both machines have to pull
> the data, which can cause disk contention. Both machines have to calculate
> the results, because I'm not aware of any ability for a machine to start a
> calc on one server and finish it on another, so you are duplicating the
> work. The data cache can possibly contain 2 copies of the same data set
> which is in effect wasted memory. The whole thing gets even more
> interesting when two people change the same piece of data routed through 2
> different servers and now Oracle has to arbitrate a winner and someone gets
> a failure sent back to them. The list of issues goes on and on and on.
> This isn't as simple a "plug in another server". I've worked with companies
> who implemented Oracle RAC. I know of a couple who got very good results
> from it with near linear scaling, but they spent thousands of DBA man-hours
> re-architecting applications, redesigning databases, beefing up
> infrastructure, and very carefully analyzing data access patterns before
> implementing it and they got near linear scaling up to 4 nodes because they
> had access patterns which guaranteed that data requests would not overlap.
> I know of several companies that added a second server and only got about a
> 50% increase and it dropped off very rapidly after that to the point where
> the 4th server only gained them about 5% of the total capacity that was
> added, because they had lots of these overlapping requests and wound up with
> severe contention in the disk resources as well as lots of wasted processing
> time.
> --
> Mike
> http://www.solidqualitylearning.com
> Disclaimer: This communication is an original work and represents my sole
> views on the subject. It does not represent the views of any other person
> or entity either by inference or direct reference.
>
> "Sathian" <sathian.t@.in.bosch.com> wrote in message
> news:dsslp4$k99$1@.ns2.fe.internet.bosch.com...
>
>
|||> (OPS), which in one form or another goes back to Oracle 6.2 (before SQL
> Server existed, as such). <
Oracle 6.2 & SQL Server 1.0 were both released in 1989.
As for Oracle's history with clustering, anyone who worked with the these
technologies in the early '90's would remember that Oracle's clulster
technology was, well, .. a toy.. This was one of the main reasons why Oracle
bought DEC Rdb - to get at DEC's SSI clustering technology, which they
eventually wove in a half-baked way (in the RDBMS but without OS support)
into Oracle RAC.
If RAC / GRID is a successful technology, why does Oracle continue to post
higher TPC-C records on single machines than on clusters? If the technology
really scaled, surely putting two of those big boxes they run the single
TPC-C's on side by side in a GRID would produce a bigger TPC-C score? Note
also that their last TPC-C was only 50% of that posted by IBM, so lack of
motivation is no excuse..
Regards,
Greg Linwood
SQL Server MVP
"jrpm" <jrpm@.discussions.microsoft.com> wrote in message
news:B2711833-380B-4675-9919-51A6C7F03387@.microsoft.com...[vbcol=seagreen]
> RAC is different from GRID.
> A lot of the issues that you are describing are RAC issues (Real
> Application
> Clusters) where multiple servers share a common database. RAC is the
> current
> name/evolution/version of what used to be called the Oracle Parallel
> System
> (OPS), which in one form or another goes back to Oracle 6.2 (before SQL
> Server existed, as such).
>
> Grid is a different approach, as I understand it. It is closer to the old
> Tandem Non-Stop/Stratus envrionment where application processes are
> assigned
> to various servers in a cluster or Grid (like electrical power lines and
> substations.) If you have excess cpu capacity on 1 server, you can have it
> run a clone application process. Also if your processing needs for a given
> application which has multiple processes have decreased, you can drop one
> of
> the processes and reassign the resources elsewhere. Additionally, if a
> server goes down then the application process can be assigned to another
> server to minimize downtime. At least this is the sales pitch.
> GRID sits on RAC, so if you have RAC problems your GRID will suffer, but
> GRID is something different.
> --
> Joseph R.P. Maloney, CSP,CCP,CDP
>
> "Michael Hotek" wrote:
|||There were application clusters working against SQL Server since before SQL
Server 2000. I worked on one piece of a custom solution that utilized SQL
Server 7.0. So, custom implementations are definitely out there.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"David Portas" <REMOVE_BEFORE_REPLYING_dportas@.acm.org> wrote in message
news:1139925420.358264.146430@.g43g2000cwa.googlegr oups.com...
> Sathian wrote:
> Microsoft just sees the architecture slightly differently. It advocates
> implementing the application cluster through a .NET tier rather than
> the database tier. Actually Microsoft claims there have been working
> examples of application clusters using SQL Server 2000 since before
> Oracle did the same.
> More at:
> http://www.microsoft.com/sql/prodinf...e/default.mspx
> http://www.microsoft.com/sql/prodinf...enchmarks.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
> --
>
Concept of Oracle Grid Architecture
We knew that there is a concept called Oracle Grid Architecture through
which we can utilise
resources of an under utilised Server in Multiple Server environemnt.
For Eg :
Pool the clusters of servers to make a single logical entity using Oracle
10g Grid architecture.More flexibility to adapt to peak loads thus achieving
better hardware utilization.All the applications have a chance to scale upto
to the maximum capacity of the Grid rather then individual server maximum
capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
results in 15 GB of RAM available for utilization. Whereas in the current
method each application associated with a server can only scale upto 3 GB.
Do we have something similar in SQL Server Scenario?
Your replies would be highly appreciated.
Regards
SathianSathian wrote:
> Dear All,
> We knew that there is a concept called Oracle Grid Architecture through
> which we can utilise
> resources of an under utilised Server in Multiple Server environemnt.
> For Eg :
> Pool the clusters of servers to make a single logical entity using Oracle
> 10g Grid architecture.More flexibility to adapt to peak loads thus achievi
ng
> better hardware utilization.All the applications have a chance to scale up
to
> to the maximum capacity of the Grid rather then individual server maximum
> capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
> results in 15 GB of RAM available for utilization. Whereas in the current
> method each application associated with a server can only scale upto 3 GB.
> Do we have something similar in SQL Server Scenario?
> Your replies would be highly appreciated.
>
> Regards
> Sathian
Microsoft just sees the architecture slightly differently. It advocates
implementing the application cluster through a .NET tier rather than
the database tier. Actually Microsoft claims there have been working
examples of application clusters using SQL Server 2000 since before
Oracle did the same.
More at:
http://www.microsoft.com/sql/prodin...le/default.mspx
http://www.microsoft.com/sql/prodin...benchmarks.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
--|||No. Being able to simply plug a second server in and double the capacity or
to fully take advantage of an "underutilized" server is a bunch of marketing
BS. The real-world implementation isn't even close to the marketing.
Take the pure Oracle point of view and take a hard look at what is going on.
I have 5 servers each with 3 GB of RAM in them setup in a "grid"
architecture. That's great. Do I get to utilize 100% of the 15GB? Nope.
There are several reasons. User1 executes "nasty query 1" by using the
resources on server3. At the same time, User2 executes "nasty query 1"
using the resources on server4. So, both are going after exactly the same
data from this shared database on the backside. Both machines have to pull
the data, which can cause disk contention. Both machines have to calculate
the results, because I'm not aware of any ability for a machine to start a
calc on one server and finish it on another, so you are duplicating the
work. The data cache can possibly contain 2 copies of the same data set
which is in effect wasted memory. The whole thing gets even more
interesting when two people change the same piece of data routed through 2
different servers and now Oracle has to arbitrate a winner and someone gets
a failure sent back to them. The list of issues goes on and on and on.
This isn't as simple a "plug in another server". I've worked with companies
who implemented Oracle RAC. I know of a couple who got very good results
from it with near linear scaling, but they spent thousands of DBA man-hours
re-architecting applications, redesigning databases, beefing up
infrastructure, and very carefully analyzing data access patterns before
implementing it and they got near linear scaling up to 4 nodes because they
had access patterns which guaranteed that data requests would not overlap.
I know of several companies that added a second server and only got about a
50% increase and it dropped off very rapidly after that to the point where
the 4th server only gained them about 5% of the total capacity that was
added, because they had lots of these overlapping requests and wound up with
severe contention in the disk resources as well as lots of wasted processing
time.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"Sathian" <sathian.t@.in.bosch.com> wrote in message
news:dsslp4$k99$1@.ns2.fe.internet.bosch.com...
> Dear All,
> We knew that there is a concept called Oracle Grid Architecture through
> which we can utilise
> resources of an under utilised Server in Multiple Server environemnt.
> For Eg :
> Pool the clusters of servers to make a single logical entity using Oracle
> 10g Grid architecture.More flexibility to adapt to peak loads thus
> achieving
> better hardware utilization.All the applications have a chance to scale
> upto
> to the maximum capacity of the Grid rather then individual server maximum
> capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
> results in 15 GB of RAM available for utilization. Whereas in the current
> method each application associated with a server can only scale upto 3 GB.
> Do we have something similar in SQL Server Scenario?
> Your replies would be highly appreciated.
>
> Regards
> Sathian
>|||RAC is different from GRID.
A lot of the issues that you are describing are RAC issues (Real Application
Clusters) where multiple servers share a common database. RAC is the curren
t
name/evolution/version of what used to be called the Oracle Parallel System
(OPS), which in one form or another goes back to Oracle 6.2 (before SQL
Server existed, as such).
Grid is a different approach, as I understand it. It is closer to the old
Tandem Non-Stop/Stratus envrionment where application processes are assigned
to various servers in a cluster or Grid (like electrical power lines and
substations.) If you have excess cpu capacity on 1 server, you can have it
run a clone application process. Also if your processing needs for a given
application which has multiple processes have decreased, you can drop one of
the processes and reassign the resources elsewhere. Additionally, if a
server goes down then the application process can be assigned to another
server to minimize downtime. At least this is the sales pitch.
GRID sits on RAC, so if you have RAC problems your GRID will suffer, but
GRID is something different.
Joseph R.P. Maloney, CSP,CCP,CDP
"Michael Hotek" wrote:
> No. Being able to simply plug a second server in and double the capacity
or
> to fully take advantage of an "underutilized" server is a bunch of marketi
ng
> BS. The real-world implementation isn't even close to the marketing.
> Take the pure Oracle point of view and take a hard look at what is going o
n.
> I have 5 servers each with 3 GB of RAM in them setup in a "grid"
> architecture. That's great. Do I get to utilize 100% of the 15GB? Nope.
> There are several reasons. User1 executes "nasty query 1" by using the
> resources on server3. At the same time, User2 executes "nasty query 1"
> using the resources on server4. So, both are going after exactly the same
> data from this shared database on the backside. Both machines have to pul
l
> the data, which can cause disk contention. Both machines have to calculat
e
> the results, because I'm not aware of any ability for a machine to start a
> calc on one server and finish it on another, so you are duplicating the
> work. The data cache can possibly contain 2 copies of the same data set
> which is in effect wasted memory. The whole thing gets even more
> interesting when two people change the same piece of data routed through 2
> different servers and now Oracle has to arbitrate a winner and someone get
s
> a failure sent back to them. The list of issues goes on and on and on.
> This isn't as simple a "plug in another server". I've worked with compani
es
> who implemented Oracle RAC. I know of a couple who got very good results
> from it with near linear scaling, but they spent thousands of DBA man-hour
s
> re-architecting applications, redesigning databases, beefing up
> infrastructure, and very carefully analyzing data access patterns before
> implementing it and they got near linear scaling up to 4 nodes because the
y
> had access patterns which guaranteed that data requests would not overlap.
> I know of several companies that added a second server and only got about
a
> 50% increase and it dropped off very rapidly after that to the point where
> the 4th server only gained them about 5% of the total capacity that was
> added, because they had lots of these overlapping requests and wound up wi
th
> severe contention in the disk resources as well as lots of wasted processi
ng
> time.
> --
> Mike
> http://www.solidqualitylearning.com
> Disclaimer: This communication is an original work and represents my sole
> views on the subject. It does not represent the views of any other person
> or entity either by inference or direct reference.
>
> "Sathian" <sathian.t@.in.bosch.com> wrote in message
> news:dsslp4$k99$1@.ns2.fe.internet.bosch.com...
>
>|||> (OPS), which in one form or another goes back to Oracle 6.2 (before SQL
> Server existed, as such). <
Oracle 6.2 & SQL Server 1.0 were both released in 1989.
As for Oracle's history with clustering, anyone who worked with the these
technologies in the early '90's would remember that Oracle's clulster
technology was, well, .. a toy.. This was one of the main reasons why Oracle
bought DEC Rdb - to get at DEC's SSI clustering technology, which they
eventually wove in a half-baked way (in the RDBMS but without OS support)
into Oracle RAC.
If RAC / GRID is a successful technology, why does Oracle continue to post
higher TPC-C records on single machines than on clusters? If the technology
really scaled, surely putting two of those big boxes they run the single
TPC-C's on side by side in a GRID would produce a bigger TPC-C score? Note
also that their last TPC-C was only 50% of that posted by IBM, so lack of
motivation is no excuse..
Regards,
Greg Linwood
SQL Server MVP
"jrpm" <jrpm@.discussions.microsoft.com> wrote in message
news:B2711833-380B-4675-9919-51A6C7F03387@.microsoft.com...
> RAC is different from GRID.
> A lot of the issues that you are describing are RAC issues (Real
> Application
> Clusters) where multiple servers share a common database. RAC is the
> current
> name/evolution/version of what used to be called the Oracle Parallel
> System
> (OPS), which in one form or another goes back to Oracle 6.2 (before SQL
> Server existed, as such).
>
> Grid is a different approach, as I understand it. It is closer to the old
> Tandem Non-Stop/Stratus envrionment where application processes are
> assigned
> to various servers in a cluster or Grid (like electrical power lines and
> substations.) If you have excess cpu capacity on 1 server, you can have it
> run a clone application process. Also if your processing needs for a given
> application which has multiple processes have decreased, you can drop one
> of
> the processes and reassign the resources elsewhere. Additionally, if a
> server goes down then the application process can be assigned to another
> server to minimize downtime. At least this is the sales pitch.
> GRID sits on RAC, so if you have RAC problems your GRID will suffer, but
> GRID is something different.
> --
> Joseph R.P. Maloney, CSP,CCP,CDP
>
> "Michael Hotek" wrote:
>|||There were application clusters working against SQL Server since before SQL
Server 2000. I worked on one piece of a custom solution that utilized SQL
Server 7.0. So, custom implementations are definitely out there.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"David Portas" <REMOVE_BEFORE_REPLYING_dportas@.acm.org> wrote in message
news:1139925420.358264.146430@.g43g2000cwa.googlegroups.com...
> Sathian wrote:
> Microsoft just sees the architecture slightly differently. It advocates
> implementing the application cluster through a .NET tier rather than
> the database tier. Actually Microsoft claims there have been working
> examples of application clusters using SQL Server 2000 since before
> Oracle did the same.
> More at:
> http://www.microsoft.com/sql/prodin...le/default.mspx
> http://www.microsoft.com/sql/prodin...benchmarks.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
> --
>
Concept of Oracle Grid Architecture
We knew that there is a concept called Oracle Grid Architecture through
which we can utilise
resources of an under utilised Server in Multiple Server environemnt.
For Eg :
Pool the clusters of servers to make a single logical entity using Oracle
10g Grid architecture.More flexibility to adapt to peak loads thus achieving
better hardware utilization.All the applications have a chance to scale upto
to the maximum capacity of the Grid rather then individual server maximum
capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
results in 15 GB of RAM available for utilization. Whereas in the current
method each application associated with a server can only scale upto 3 GB.
Do we have something similar in SQL Server Scenario?
Your replies would be highly appreciated.
Regards
SathianSathian wrote:
> Dear All,
> We knew that there is a concept called Oracle Grid Architecture through
> which we can utilise
> resources of an under utilised Server in Multiple Server environemnt.
> For Eg :
> Pool the clusters of servers to make a single logical entity using Oracle
> 10g Grid architecture.More flexibility to adapt to peak loads thus achievi
ng
> better hardware utilization.All the applications have a chance to scale up
to
> to the maximum capacity of the Grid rather then individual server maximum
> capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
> results in 15 GB of RAM available for utilization. Whereas in the current
> method each application associated with a server can only scale upto 3 GB.
> Do we have something similar in SQL Server Scenario?
> Your replies would be highly appreciated.
>
> Regards
> Sathian
Microsoft just sees the architecture slightly differently. It advocates
implementing the application cluster through a .NET tier rather than
the database tier. Actually Microsoft claims there have been working
examples of application clusters using SQL Server 2000 since before
Oracle did the same.
More at:
http://www.microsoft.com/sql/prodin...le/default.mspx
http://www.microsoft.com/sql/prodin...benchmarks.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
--|||No. Being able to simply plug a second server in and double the capacity or
to fully take advantage of an "underutilized" server is a bunch of marketing
BS. The real-world implementation isn't even close to the marketing.
Take the pure Oracle point of view and take a hard look at what is going on.
I have 5 servers each with 3 GB of RAM in them setup in a "grid"
architecture. That's great. Do I get to utilize 100% of the 15GB? Nope.
There are several reasons. User1 executes "nasty query 1" by using the
resources on server3. At the same time, User2 executes "nasty query 1"
using the resources on server4. So, both are going after exactly the same
data from this shared database on the backside. Both machines have to pull
the data, which can cause disk contention. Both machines have to calculate
the results, because I'm not aware of any ability for a machine to start a
calc on one server and finish it on another, so you are duplicating the
work. The data cache can possibly contain 2 copies of the same data set
which is in effect wasted memory. The whole thing gets even more
interesting when two people change the same piece of data routed through 2
different servers and now Oracle has to arbitrate a winner and someone gets
a failure sent back to them. The list of issues goes on and on and on.
This isn't as simple a "plug in another server". I've worked with companies
who implemented Oracle RAC. I know of a couple who got very good results
from it with near linear scaling, but they spent thousands of DBA man-hours
re-architecting applications, redesigning databases, beefing up
infrastructure, and very carefully analyzing data access patterns before
implementing it and they got near linear scaling up to 4 nodes because they
had access patterns which guaranteed that data requests would not overlap.
I know of several companies that added a second server and only got about a
50% increase and it dropped off very rapidly after that to the point where
the 4th server only gained them about 5% of the total capacity that was
added, because they had lots of these overlapping requests and wound up with
severe contention in the disk resources as well as lots of wasted processing
time.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"Sathian" <sathian.t@.in.bosch.com> wrote in message
news:dsslp4$k99$1@.ns2.fe.internet.bosch.com...
> Dear All,
> We knew that there is a concept called Oracle Grid Architecture through
> which we can utilise
> resources of an under utilised Server in Multiple Server environemnt.
> For Eg :
> Pool the clusters of servers to make a single logical entity using Oracle
> 10g Grid architecture.More flexibility to adapt to peak loads thus
> achieving
> better hardware utilization.All the applications have a chance to scale
> upto
> to the maximum capacity of the Grid rather then individual server maximum
> capacity.Manage many as one. e.g. 5 Servers each of 3 GB RAM in a Grid
> results in 15 GB of RAM available for utilization. Whereas in the current
> method each application associated with a server can only scale upto 3 GB.
> Do we have something similar in SQL Server Scenario?
> Your replies would be highly appreciated.
>
> Regards
> Sathian
>|||RAC is different from GRID.
A lot of the issues that you are describing are RAC issues (Real Application
Clusters) where multiple servers share a common database. RAC is the curren
t
name/evolution/version of what used to be called the Oracle Parallel System
(OPS), which in one form or another goes back to Oracle 6.2 (before SQL
Server existed, as such).
Grid is a different approach, as I understand it. It is closer to the old
Tandem Non-Stop/Stratus envrionment where application processes are assigned
to various servers in a cluster or Grid (like electrical power lines and
substations.) If you have excess cpu capacity on 1 server, you can have it
run a clone application process. Also if your processing needs for a given
application which has multiple processes have decreased, you can drop one of
the processes and reassign the resources elsewhere. Additionally, if a
server goes down then the application process can be assigned to another
server to minimize downtime. At least this is the sales pitch.
GRID sits on RAC, so if you have RAC problems your GRID will suffer, but
GRID is something different.
Joseph R.P. Maloney, CSP,CCP,CDP
"Michael Hotek" wrote:
> No. Being able to simply plug a second server in and double the capacity
or
> to fully take advantage of an "underutilized" server is a bunch of marketi
ng
> BS. The real-world implementation isn't even close to the marketing.
> Take the pure Oracle point of view and take a hard look at what is going o
n.
> I have 5 servers each with 3 GB of RAM in them setup in a "grid"
> architecture. That's great. Do I get to utilize 100% of the 15GB? Nope.
> There are several reasons. User1 executes "nasty query 1" by using the
> resources on server3. At the same time, User2 executes "nasty query 1"
> using the resources on server4. So, both are going after exactly the same
> data from this shared database on the backside. Both machines have to pul
l
> the data, which can cause disk contention. Both machines have to calculat
e
> the results, because I'm not aware of any ability for a machine to start a
> calc on one server and finish it on another, so you are duplicating the
> work. The data cache can possibly contain 2 copies of the same data set
> which is in effect wasted memory. The whole thing gets even more
> interesting when two people change the same piece of data routed through 2
> different servers and now Oracle has to arbitrate a winner and someone get
s
> a failure sent back to them. The list of issues goes on and on and on.
> This isn't as simple a "plug in another server". I've worked with compani
es
> who implemented Oracle RAC. I know of a couple who got very good results
> from it with near linear scaling, but they spent thousands of DBA man-hour
s
> re-architecting applications, redesigning databases, beefing up
> infrastructure, and very carefully analyzing data access patterns before
> implementing it and they got near linear scaling up to 4 nodes because the
y
> had access patterns which guaranteed that data requests would not overlap.
> I know of several companies that added a second server and only got about
a
> 50% increase and it dropped off very rapidly after that to the point where
> the 4th server only gained them about 5% of the total capacity that was
> added, because they had lots of these overlapping requests and wound up wi
th
> severe contention in the disk resources as well as lots of wasted processi
ng
> time.
> --
> Mike
> http://www.solidqualitylearning.com
> Disclaimer: This communication is an original work and represents my sole
> views on the subject. It does not represent the views of any other person
> or entity either by inference or direct reference.
>
> "Sathian" <sathian.t@.in.bosch.com> wrote in message
> news:dsslp4$k99$1@.ns2.fe.internet.bosch.com...
>
>|||> (OPS), which in one form or another goes back to Oracle 6.2 (before SQL
> Server existed, as such). <
Oracle 6.2 & SQL Server 1.0 were both released in 1989.
As for Oracle's history with clustering, anyone who worked with the these
technologies in the early '90's would remember that Oracle's clulster
technology was, well, .. a toy.. This was one of the main reasons why Oracle
bought DEC Rdb - to get at DEC's SSI clustering technology, which they
eventually wove in a half-baked way (in the RDBMS but without OS support)
into Oracle RAC.
If RAC / GRID is a successful technology, why does Oracle continue to post
higher TPC-C records on single machines than on clusters? If the technology
really scaled, surely putting two of those big boxes they run the single
TPC-C's on side by side in a GRID would produce a bigger TPC-C score? Note
also that their last TPC-C was only 50% of that posted by IBM, so lack of
motivation is no excuse..
Regards,
Greg Linwood
SQL Server MVP
"jrpm" <jrpm@.discussions.microsoft.com> wrote in message
news:B2711833-380B-4675-9919-51A6C7F03387@.microsoft.com...[vbcol=seagreen]
> RAC is different from GRID.
> A lot of the issues that you are describing are RAC issues (Real
> Application
> Clusters) where multiple servers share a common database. RAC is the
> current
> name/evolution/version of what used to be called the Oracle Parallel
> System
> (OPS), which in one form or another goes back to Oracle 6.2 (before SQL
> Server existed, as such).
>
> Grid is a different approach, as I understand it. It is closer to the old
> Tandem Non-Stop/Stratus envrionment where application processes are
> assigned
> to various servers in a cluster or Grid (like electrical power lines and
> substations.) If you have excess cpu capacity on 1 server, you can have it
> run a clone application process. Also if your processing needs for a given
> application which has multiple processes have decreased, you can drop one
> of
> the processes and reassign the resources elsewhere. Additionally, if a
> server goes down then the application process can be assigned to another
> server to minimize downtime. At least this is the sales pitch.
> GRID sits on RAC, so if you have RAC problems your GRID will suffer, but
> GRID is something different.
> --
> Joseph R.P. Maloney, CSP,CCP,CDP
>
> "Michael Hotek" wrote:
>|||There were application clusters working against SQL Server since before SQL
Server 2000. I worked on one piece of a custom solution that utilized SQL
Server 7.0. So, custom implementations are definitely out there.
Mike
http://www.solidqualitylearning.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.
"David Portas" <REMOVE_BEFORE_REPLYING_dportas@.acm.org> wrote in message
news:1139925420.358264.146430@.g43g2000cwa.googlegroups.com...
> Sathian wrote:
> Microsoft just sees the architecture slightly differently. It advocates
> implementing the application cluster through a .NET tier rather than
> the database tier. Actually Microsoft claims there have been working
> examples of application clusters using SQL Server 2000 since before
> Oracle did the same.
> More at:
> http://www.microsoft.com/sql/prodin...le/default.mspx
> http://www.microsoft.com/sql/prodin...benchmarks.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
> --
>
concatnate multiple results into one field
I am trying to query a table and return the results all in one field.
My table basicly looks like this:
tblBody:
ID Body
1 This is body 1
2 This is body 2
3 This is body 3
Now i want to select all this data, and concatenate it into one field
So when i do:
SELECT Body FROM tblBody (altered to be the right way of doing this of
course)
The results are:
Body
This is body 1This is body 2This is body 3
and not
Body
1 This is Body 1
2 This is Body 2
3 This is Body 3
TIAhttp://www.aspfaq.com/show.asp?id=2529
"Grant Merwitz" wrote:
> Hi
> I am trying to query a table and return the results all in one field.
> My table basicly looks like this:
> tblBody:
> ID Body
> 1 This is body 1
> 2 This is body 2
> 3 This is body 3
> Now i want to select all this data, and concatenate it into one field
> So when i do:
> SELECT Body FROM tblBody (altered to be the right way of doing this of
> course)
> The results are:
> Body
> This is body 1This is body 2This is body 3
> and not
> Body
> 1 This is Body 1
> 2 This is Body 2
> 3 This is Body 3
> TIA
>
>|||Thanks, that was exactly what i was looking for.
But now i've realised another problem:
The fields i'm trying to join are all of varchar(4000)
So i don't believe there's a variable i can store these in to return in a
Sql query.
Is there?
I may have to return multiple rows and join them in my business layer.
Thanks for you help, any thoughts here?
"SQL" <SQL@.discussions.microsoft.com> wrote in message
news:63B64C15-2098-4802-B189-60EF51BA668E@.microsoft.com...
> http://www.aspfaq.com/show.asp?id=2529
>
> "Grant Merwitz" wrote:
>> Hi
>> I am trying to query a table and return the results all in one field.
>> My table basicly looks like this:
>> tblBody:
>> ID Body
>> 1 This is body 1
>> 2 This is body 2
>> 3 This is body 3
>> Now i want to select all this data, and concatenate it into one field
>> So when i do:
>> SELECT Body FROM tblBody (altered to be the right way of doing this
>> of
>> course)
>> The results are:
>> Body
>> This is body 1This is body 2This is body 3
>> and not
>> Body
>> 1 This is Body 1
>> 2 This is Body 2
>> 3 This is Body 3
>> TIA
>>
concatnate multiple results into one field
I am trying to query a table and return the results all in one field.
My table basicly looks like this:
tblBody:
ID Body
1 This is body 1
2 This is body 2
3 This is body 3
Now i want to select all this data, and concatenate it into one field
So when i do:
SELECT Body FROM tblBody (altered to be the right way of doing this of
course)
The results are:
Body
This is body 1This is body 2This is body 3
and not
Body
1 This is Body 1
2 This is Body 2
3 This is Body 3
TIAhttp://www.aspfaq.com/show.asp?id=2529
"Grant Merwitz" wrote:
> Hi
> I am trying to query a table and return the results all in one field.
> My table basicly looks like this:
> tblBody:
> ID Body
> 1 This is body 1
> 2 This is body 2
> 3 This is body 3
> Now i want to select all this data, and concatenate it into one field
> So when i do:
> SELECT Body FROM tblBody (altered to be the right way of doing this of
> course)
> The results are:
> Body
> This is body 1This is body 2This is body 3
> and not
> Body
> 1 This is Body 1
> 2 This is Body 2
> 3 This is Body 3
> TIA
>
>|||Thanks, that was exactly what i was looking for.
But now i've realised another problem:
The fields i'm trying to join are all of varchar(4000)
So i don't believe there's a variable i can store these in to return in a
Sql query.
Is there?
I may have to return multiple rows and join them in my business layer.
Thanks for you help, any thoughts here?
"SQL" <SQL@.discussions.microsoft.com> wrote in message
news:63B64C15-2098-4802-B189-60EF51BA668E@.microsoft.com...[vbcol=seagreen]
> http://www.aspfaq.com/show.asp?id=2529
>
> "Grant Merwitz" wrote:
>
concatnate multiple results into one field
I am trying to query a table and return the results all in one field.
My table basicly looks like this:
tblBody:
ID Body
1 This is body 1
2 This is body 2
3 This is body 3
Now i want to select all this data, and concatenate it into one field
So when i do:
SELECT Body FROM tblBody (altered to be the right way of doing this of
course)
The results are:
Body
This is body 1This is body 2This is body 3
and not
Body
1 This is Body 1
2 This is Body 2
3 This is Body 3
TIA
http://www.aspfaq.com/show.asp?id=2529
"Grant Merwitz" wrote:
> Hi
> I am trying to query a table and return the results all in one field.
> My table basicly looks like this:
> tblBody:
> ID Body
> 1 This is body 1
> 2 This is body 2
> 3 This is body 3
> Now i want to select all this data, and concatenate it into one field
> So when i do:
> SELECT Body FROM tblBody (altered to be the right way of doing this of
> course)
> The results are:
> Body
> This is body 1This is body 2This is body 3
> and not
> Body
> 1 This is Body 1
> 2 This is Body 2
> 3 This is Body 3
> TIA
>
>
|||Thanks, that was exactly what i was looking for.
But now i've realised another problem:
The fields i'm trying to join are all of varchar(4000)
So i don't believe there's a variable i can store these in to return in a
Sql query.
Is there?
I may have to return multiple rows and join them in my business layer.
Thanks for you help, any thoughts here?
"SQL" <SQL@.discussions.microsoft.com> wrote in message
news:63B64C15-2098-4802-B189-60EF51BA668E@.microsoft.com...[vbcol=seagreen]
> http://www.aspfaq.com/show.asp?id=2529
>
> "Grant Merwitz" wrote: