View Performance, Linked Servers, Query Specifiying Uniqueidentifier
Jul 20, 2005
Greetings,
I have 3 servers all running SQL Server 2000 - 8.00.818. Lets call
them parent, child1, and child 2.
On parent, I create a view called item as follows:
CREATE view Item as
select * from child1.dbchild1.dbo.Item union all
select * from child2.DBChild2.dbo.Item
On child1 and child2, I have a table "item" with a column named "id"
datatype uniqueidentifier (and many other columns). There is a
non-clustered index created over column "id".
When I connect to the parent server and select from the view
Select id, col1, col2, …. From item where id =
‘280A33E0-5B61-4194-B242-0E184C46BB59'
The query is distributed to the children "correctly" (meaning it
executes entirely (including the where clause) on the children server
and one row is returned to the parent).
However, when I select based on a list of ids
Select id, col1, col2, …. From item where id in
(‘280A33E0-5B61-4194-B242-0E184C46BB59',
‘376FA839-B48A-4599-BC67-25C6820FE105')
the plan shows that the entire contents of both children item tables
(millions of rows each) are pulled from the children to the parent,
and THEN the where criteria is applied.
Oddly enough, if I put the list of id's I want into a temp table
select * from #bv1
id
------------------------------------
280A33E0-5B61-4194-B242-0E184C46BB59
376FA839-B48A-4599-BC67-25C6820FE105
and then
Select id, col1, col2, …. From item where id in (select * from #bv1)
the query executes with the where criteria applied on the children
databases saving millions of rows being copied back to the parent
server.
So, I have a hack that works (using the temp table) for this case, but
I really don't understand the root cause. After reading online books,
in a way I am confused why ANY of the processing is done on the
children servers. I quote:
================================================
Remote Query Execution
SQL Server attempts to delegate as much of the evaluation of a
distributed query to the SQL Command Provider as possible. An SQL
query that accesses only the remote tables stored in the provider's
data source is extracted from the original distributed query and
executed against the provider. This reduces the number of rows
returned from the provider and allows the provider to use its indexes
in evaluating the query.
Considerations that affect how much of the original distributed query
gets delegated to the SQL Command Provider include:
•The dialect level supported by the SQL Command Provider
SQL Server delegates operations only if they are supported by the
specific dialect level. The dialect levels from highest to lowest are:
SQL Server, SQL-92 Entry level, ODBC core, and Jet. The higher the
dialect level, the more operations SQL Server can delegate to the
provider.
Note The SQL Server dialect level is used when the provider
corresponds to a SQL Server linked server.
Each dialect level is a superset of the lower levels. Therefore, if an
operation is delegated to a particular level, then Queries involving
the following are never delegated to a provider and are always it is
also delegated to all higher levels.
evaluated locally:
•bit
•uniqueidentifier
================================================
This suggests to me that any query having where criteria applied to a
datatype uniqueidentifier will have the where criteria applied AFTER
data is returned from the linked server.
Any ideas on the root problem, and a better solution to get the query
and all the where criteria applied on the remoted linked server?
Thanks,
Bernie
View 5 Replies
ADVERTISEMENT
Jul 23, 2005
I am transferring data from SQl Server 2000 to Oracle through LinkedServers.It takes considerable amount of time while transferring datafrom SQL Server to oracle.Both these databases are at remotelocations.I am executing a Stored procedure on SQL Server and what itdoes is,It has an Insert statement which reads the data from a table inSQL Server and inserts it into the Oracle table. It is a very timeconsuming process.Vice-Versa it takes very less time for Oracle-SQLServer transfer.If anybody has a clue towards reducing the time in SQLServer-ORACLE transfer.
View 3 Replies
View Related
Nov 13, 2006
For example I have 15 records in which accountID is a PK. AccountID 1,2,3,4,5 is linked on server1. I want to find out records that are not linked. So its record 6 - 15. Can someone show the stored procs for this scenario? Or the query statement to do this... Im new to linked servers. Thanks alot.
View 1 Replies
View Related
Jan 11, 2000
I have successfully connected to a sybase 11 database and have successfully run a couple of open query statements against this database, I have now placed this open query in a stored procedure and it works well, but when I want to pass parameter variables has part of my open query it does not like it. It asks me to declare the variable which is a parameter of the stored procedure. Is there any way I can pass in a variable value has part of my query
************************************************** *********************8
CREATE PROCEDURE qse_check_label_projectid
@projectid char(18)
AS
Select * from openquery(MRTEST32,'SELECT
Project_id
FROM
DBO.MRT_PROJECT
WHERE
Project_id = @PROJECTID ')
************************************************** ***************************
Please I believe there should be a way to pass a value through this open query function!
View 2 Replies
View Related
May 8, 2007
created a linked server. But i can't query the table.
i tried different combinations but they dont work.
LS: dccs_danville
DB: intdccs_dv.gdb
table:tblload
select top 10 * from dccs_danville.INTDCCS_DV.gdb.tblload
select top 10 * from dccs_danville.INTDCCS_DV.dbo.tblload
select top 10 * from dccs_danville.INTDCCS_DV...tblload
select top 10 * from dccs_danville.INTDCCS_DV.tblload
select top 10 * from dccs_danville...tblload
select top 10 * from dccs_danville.INTDCCS_DV.tblload
also tried EXEC sp_tables_ex 'dccs_danville'
tblload is able to be queried.
anyone know what is wrong?
View 3 Replies
View Related
Mar 6, 2007
We have a linked server that is an Apartment model OLE DB Provider. It works fine on SQL 2005 SP1. After applying SP2, we get the following msg when running a query against the linked server. I cannot find anything in the SP2 doc that indicates a change of behavior for linked servers. Any ideas ?
Bill
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'DBAmp.DBAmp' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
View 4 Replies
View Related
Apr 4, 2007
We have a linked server that is an Apartment model OLE DB Provider. It works fine on SQL 2005 SP1 and previous versions.
After applying SP2, we get the following error message when running a query against the linked server.
I cannot find anything in the SP2 documentation that indicates a change of behavior for linked servers.
Any ideas ?
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'XXX.XXXXX' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
Toby
View 7 Replies
View Related
Apr 23, 2001
I have an application being developed using SQL server.
The data is captured at various remote areas and the
SQL servers are not physically connected to each other.
Periodically either through a replication / backup process
i plan to update the data from various servers into a central
database.
Can i use the NewID() function to generate a unique ID which
i can use as a primary key that would not be duplicated
across all these servers?
if not Please suggest a solution to maintain the uniqueness
of the transaction.
thanks in advance
View 1 Replies
View Related
Jan 24, 2008
Is it possible to query linked servers without the Distributed Transaction Coordinator service enabled or allowing network access?
Is that ONLY for transactions? What if I just wanted to read the data and nothing else?
View 13 Replies
View Related
May 14, 2001
Hi,
I am now facing a problem related to the linked server. I created the connection between server A and B as linked servers. When I execute the following SQL statement on server A,
select * from B.database1.dbo.tableA where id ='12345'
I can get the results within couple of seconds. But the similar query would take several minutes if I switch the server name in the query from B to A and
run it on server B! The tables on server A and B actually have the same sizes and the same indexes.
Do you have any clues and suggestions on this issue?
Thanks in advance.
Keith
View 1 Replies
View Related
Aug 30, 2006
Hello,I am using the login controls in 2.0. Each new member has a UserId created : it's a Guid, so a uniqueidentifier in sql server.I also have many tables and stored procedures of my own, and the member id is in most of them.Here is my question: should I keep the uniqueidentifier UserId for all my tables and sp, or should I create a new memberId as an IDENTITY(int) (and for sure link it with the log in userid) in order to get a better performance. I have read many things saying that uniqueidentifiers would reduce the performance, but also others who say it won't be significant. Who's right in this uniqueidentifier vs integer competition ??? Thanks for your recommandations.
View 10 Replies
View Related
Aug 17, 2006
Is it possible to link to an SQL 2005 server db from a SQL 2000 server? Is there a driver for this?
View 1 Replies
View Related
Apr 5, 2008
can anybody tell me about Linked Servers and their uses and how to add a linked server to my Sql Server 2005.
any help on this would be highly appreciated.
View 3 Replies
View Related
Jun 10, 2004
Hello All,
I have been trying to Link two sql servers on two different machines over the Internet without any luck. Can someone point me to information about doing this with good examples?
Thanks
View 2 Replies
View Related
Jan 22, 2002
I currently have a main SQL Server which had a column on the majority of the tables. This column also had a check contraint on it. I dropped the column and the constraint and I now get the following message when trying to query the tables through a linked server 'OLE DB provider 'SQLOLEDB' supplied inconsistent metadata. An extra column was supplied during execution that was not found at compile time.'.
Can anyone help
View 1 Replies
View Related
May 10, 2001
Hi All,
I have successfully linked a server and had SQL queries running
OK for a few weeks, but today I get the following message....
"OLE DB provider 'SQLOLEDB' supplied inconsistent metadata. An extra column was supplied during execution that was not found at compile time."
(Server: Msg 7353, Level 16, State 1, Line 1)
I've dropped the link and recreated it but I still get the same error
message. Can anyone help???
Thanks
David.
View 2 Replies
View Related
Jun 25, 2001
Hi,
I'm using SQL Server 7.0 SP1.
I have a DTS package that requires me to link 2 servers
and query both in order to get my set of records that I
want to Transform. My query runs fine in QA. I copy and
paste it into the SQL Query window of the transformation.
I click Preview and all that happens is a quick flicker of
the DTS window. When I go to Transformations, there are
no source columns.
Here is a copy of my code that I'm trying to use:
-------------------------------------------------------
declare@start_dteas datetime,
@end_dteas datetime
SELECT@start_dte = date_data_range_start_dte,
@END_DTE = date_data_range_END_dte
FROMSIDDEV.SID_DEVELOPMENT.DBO.T901_RUN
WHERERUN_ID = (selectmax(run_id)
from
SIDDEV.SID_DEVELOPMENT.DBO.t901_run
whererun_type_cd = 'M')
SELECTRUN_ID
INTO#RUNS
FROMCRMDEV02.MDCORE.DBO.T901_RUN
WHEREDATE_DATA_RANGE_START_DTE >= @START_DTE
ANDDATE_DATA_RANGE_END_DTE <= @END_DTE
SELECTT70.*
FROM
CRMDEV02.MDCORE.DBO.T70_MD_UNIVERSE_RELATIONSHIP_M A
NGT AS T70 JOIN #RUNS
ONT70.RUN_ID = #RUNS.RUN_ID
DROP TABLE #RUNS
------------------------------------------------------
Is there an issue with Linked Servers and DTS?
Any help would be greatly appreciated.
Thanks in advance,
Darrin
View 1 Replies
View Related
Aug 7, 2001
FOLKS
I GET THE FOLLOWING ERROR WHEN I RUN A SELECT FROM THE LINKED SERVER
THE LINKSERVER EXISTS AND THERE IS A RECORD IN SYSSERVERS TOO.
Could not initialize data source object of OLE DB provider 'Microsoft.Jet.OLEDB.4.0'
I AM NOT SURE WHERE TO GO FROM HERE.
REGARDS
GIRISH
View 1 Replies
View Related
Aug 10, 2001
Hi Gurus,
I am looking for literature to find out Pros and Cons of Using DTS Verses
Linked Servers in SQL 7.0.
My requirement can be done by either DTS or Linked servers. But I would like to know more about resorce utilisation of these tecniques before making a decission.
Can somebody suggest where to look for.
Thanks
sekhar
View 1 Replies
View Related
Sep 18, 2001
When I create linked server using integrated security and <they will be impersonated> option I get this:
Server: Msg 18456, Level 14, State 1, Line 1 Login failed for user ''
MS Technet says that SQL Server 7 doesn't allow double hops and to use mappings to standard security login to work around. @#%%~~@@#@#&^%@#
Impersonating to version 6.5 works fine.
Is there any way to link servers using ONLY integrated security?
Any help would be much appreciated.
Thanks
View 1 Replies
View Related
Jul 18, 2000
I have setup a linked Informix server in SQL7.0 and I am trying to create a
simple View with the following SQL statement
SELECT doc_code
FROM FOURSITE.foursite.informix.watdoc
WHERE (order_no = [PV01963B ])
I am getting the following error:
---------------------------
SQL Server Enterprise Manager
---------------------------
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid use of schema and/or
catalog for OLE DB provider 'MSDASQL'. A four-part name was supplied, but
the provider does not expose the necessary interfaces to use a catalog
and/or schema.
---------------------------
OK Help
---------------------------
Can any one tell me how to correct this problem?
Thanks
Peter
pczurak@bigfoot.com
View 5 Replies
View Related
Apr 17, 2000
Is it possible to add a 6.5 database as a linked server to a 7.0 database and query from it ?
View 6 Replies
View Related
Nov 3, 2000
Hi.
I'm working with SQL Server 7.0 and I've been reading about the linked server option. My question is, if it's possible to link a server with a SQLBase database 7.01.
I have download some drivers to my computer, the odbc driver for sqlbase and the sqlbase ole db driver as well, but when I try to add a new linked server in the enterprise, in the provider name option I can not see any provider name addressing to Centura or Sql base driver.
Has anybody an idea how to make this connection then? or the right way for doing it??
Thanks for any help can be offered.
Regards, Elvia.
:)
View 2 Replies
View Related
Feb 10, 2000
I have two 7.0 servers and I want to run a distributed query.
I did sp_addlinkedserver to link server B to server A
and I did sp_addlinkedsrvlogin for a specific login.
After adding login when I try to access a table on server B it
says login failed
All the logins are NT authenticated (in both the servers, So
both servers have same logins.)
but it is not working.
View 1 Replies
View Related
Sep 1, 2000
Hi all
I try to configure Linked Servers from the query analyze , and have some troubles.
My steps are :
1. from the enterprise mennenger , add 2 new servers : srv1 , srv2 (both SQL7)
2. from the query analyzer of srv1.master: "sp_addlinkedserver 'srv2'"
3. from the query analyzer of srv1.master:
"sp_addlinkedsrvlogin 'srv2',false,null,'sa','myPass'"
4. select * from srv2.pubs.srv2Table
5. I get the next error :"error 6 : Specified SQL srever not found."
What do I do wrong ?
Eyal
View 2 Replies
View Related
Apr 19, 2000
Anyone out there use linked servers? I just tried this SQL7 feature and am very impressed. Are there any pitfalls to watch out for? Comments?
Thanks in advance.
Steve
View 1 Replies
View Related
Feb 14, 2002
I have created link servers a few time within SQL2000 and pulled data from Oracle. How would an Oracle Server or Application pull / See from SQL?
Anyone have any experience?
Thanks,
David
View 1 Replies
View Related
May 11, 2002
How to determine by means of T-SQL
if a linked server is available(for processing with its tables)?
View 1 Replies
View Related
Jun 26, 2002
This is my problem I have a Server A and Server B. There is a master table in Table A. I link Server A and Server B. When I look in Under Linked Server tables of B I can only C tables in Server A not the Server B 's Tables. Dpn't know what is happening. Could SOmebody help
View 1 Replies
View Related
Nov 1, 2004
We are creating a newServer grabbing data from an extrnal data source.
We need to perform regular audits to verify the record counts (for now) are the same.
We have 2 physically separate SQL servers 1 with old 1 with new.
I have created a linked server but when i do a query on the linked server the performace is pathetic (2mins 12 secs) to do a simple count.
Is there a better way, or can improv the perf?
Thanks
Greg C
View 3 Replies
View Related
Jan 5, 2006
I have two servers and they are linked servers. When I query a table on ON Box2 from Box1
The distributed query works fine but when I tried the oppisite it says 'SQL Server does not exist or access denied.'
What could be the reason.
Thanks.
View 2 Replies
View Related
Feb 27, 2006
Recently, I had Microsoft review why our SQL Db was unexpectedly terminating. They pointed to our Oracle Linked servers. They recommended that we try to uncheck the enable allow in process option on the ODBC driver. We are currently using the Microsoft OLE Db provider for our Oracle connnections as we were unable to get the Oracle ones to work with a linked server. When we unchecked this allow in process option near the end of the day our website began getting out memory errors from ODBC. It appeared to have been because of this change. Does anyone have any insight as to why changing this option could have caused this?
View 1 Replies
View Related
Sep 29, 2006
Hello,
Is there any limit to the number of linked servers i can add via EM?. where can i find more info on adding/configuring linked servers in MSSQL2k and the limitations/drawbacks if any?
Thanks in advance..
View 1 Replies
View Related