Linked Server, Views And Efficiency

May 6, 2005

Hi,

I have two servers that i want to create a SQL RS report on.
On one server there is an HR database with our staff details, on the other server there is a database of assets.

In order to report on the assets assigned to each user i am thinking that i will have to :
1) link the servers
2) create a view in the HR database exposing the fields needed
3) create a view in the assets database exposing the assets information joined to the view from the other server
4) create my reports on the view on the assets server.

is this right or am i barking up the wrong tree?

View 9 Replies


ADVERTISEMENT

Efficiency Of Views

Jun 12, 2008

Hi,

okay so I'm refactoring some code at the moment. At the moment, I'm working on a search screen. This search screen lets the user enter a number of criterias, I'm working on drags data from a view and then programmatically filters it according to the search filters.

This is obviously inefficent and non-scalable as the view drags out every entry and returns to the data layer, which then filters it.

I'm wondering what the best way to refactor this? i'm thinking the best way is to tell the db what to filter on, so it'll only drag out the right amount of data.

Therefore, should I keep the view? Is there any way of entering parameters into views or am i going to need to change this into a stored proc?

View 2 Replies View Related

Views Efficiency

Jul 20, 2005

How efficient is ti to use join views in a database?I'm developing an e-commerce system and using join views to join theproduct, product category and product review tables and wondering if thiswould have any adverse effect on performance.Thanks in advance

View 3 Replies View Related

Views From Linked Server Inaccessible

Jul 2, 2007

Please help.

I created a linked server with Oracle Provider for OLE DB to Oracle Database from SQL Server 2000 SP 4. Afterwards I created Views from this linked server and granted SQL Server users "select" access to the Views.
Unfortunately when they try to access the views the following error message was generated (see the attached image - error.gif).

Can someone please explain to me what is wrong?

Thanks

Victor

View 7 Replies View Related

Not Seeing Some Linked Server Catalog Views

Jan 30, 2008

SQL 2005 SP2 in Managemrnt Studio...
I have a linked server set-up pointing to an instance that has several databases. In one catalog I have no tables or views being listed for the catalog. So I select a view, add the permissions that should allow the view to show in the list but it does not. And I did refresh and I did even restart management studio.

BTW: I can exec the view using a 4 part name.

Any one have an idea why the view don't show in the list?

Thanks much
chuck

View 5 Replies View Related

Distributed Query From SS 2000 To Access Catalog Views On SS 2005 Via Linked Server

Aug 24, 2006

I am trying to write some admin only procedures which will collect information to one of my development server from other production and development servers.
 
I have created linked servers to access these other servers on the development server. This development server is SQL Server 2000 EE. Other servers which I want to access are 2000 and 2005 (vaious editions)
 
E.g I have another development server called PRODTEST which is SQL Server 2005 and on the development server I have created a linked server pointing to PRODTEST called TESTLINKSRV. I want to access new object catalog view (as I do not want to use sysobjects)
 
When I run the following query
 
SELECT * FROM [TESTLINKSRV].[DBNAME].[sys].[objects]
 
I get following error,
 
OLE DB error trace [Non-interface error:  OLE DB provider does not contain the table: ProviderName=' TESTLINKSRV ', TableName='" DBNAME "."sys"."objects"'].
 
Msg 7314, Level 16, State 1, Line 1
 
OLE DB provider ' TESTLINKSRV ' does not contain table '"DBNAME"."sys"."objects"'.  The table either does not exist or the current user does not have permissions on that table.
 
So I try this query
 
SELECT * FROM [TESTLINKSRV].[DBNAME].[sys.objects]
 
and I get following error
 
Msg 208, Level 16, State 1, Line 1
 
Invalid object name TESTLINKSRV.DBNAME.sys.objects'.
 
So bottom line is how do I access catalog views on a 2005 server from a 2000 server using linked server?
 
I hope someone understands what I am trying to achieve. Please let me know what is it that I am doing wrong.
Thank you

View 5 Replies View Related

Accessing System Views Via Linked Servers

Apr 30, 2007

Is there anyway to access system views on/from a linked server?

I have unsuccessfully tried various permutations of
select *
from [MDEDATAWTDss2005].master.[information_schema.colums]

Thanks

View 6 Replies View Related

Problem Creating Indexed Views With Linked Servers

Jul 20, 2005

Hi, I have a problem, maybe someone can help me.I'm traing to create a view with a Linked ServerThis query works great:select id, descrfrom SERVER.DB.dbo.TABLEWhen I tray to create the view:CREATE VIEW dbo.View1 WITH SCHEMABINDINGASselect id, descrfrom SERVER.DB.dbo.TABLEGOI have this error:Server: Msg 4512, Level 16, State 3, Procedure Pais2, Line 3Cannot schema bind view 'dbo.View1' because name 'SERVER.DB.dbo.TABLE'is invalid for schema binding. Names must be in two-part format and anobject cannot reference itself.So I try this:CREATE VIEW dbo.View1 WITH SCHEMABINDINGASselect SERVER.DB.dbo.TABLE.id, SERVER.DB.dbo.TABLE.descrfrom SERVER.DB.dbo.TABLEGOI have this error:Server: Msg 117, Level 15, State 2, Procedure Pais2, Line 3The number name 'SERVER.DB.dbo.TABLE' contains more than the maximumnumber of prefixes. The maximum is 3.Then I try this:CREATE VIEW dbo.View1 WITH SCHEMABINDINGASselect a.id, a.descrfrom SERVER.DB.dbo.TABLE as AGOI Have this errorServer: Msg 4512, Level 16, State 3, Procedure View1, Line 3Cannot schema bind view 'dbo.View1' because name'iservsql1.osderrhh.dbo.pais' is invalid for schema binding. Namesmust be in two-part format and an object cannot reference itself.This query alone works great:select a.id, a.descrfrom SERVER.DB.dbo.TABLE as AThe names aren't what I describe here (id is not valid without []).ANY IDEAS?!??!?!I don't know what else can I do.I need help!!!TANKS A LOT!!!!!!!!

View 1 Replies View Related

Zero Length Strings Showing Up As A Space In Views Linked In Access

Jun 28, 2000

Zero Length Strings Showing up as a Space in Views linked in Access

I have code being converted from a SQL 6.5 DB to SQL 7; SQL 7 does not concantenate NULLS like in 6.5, so i have replaced all occurances of concantenated NULLs with zero-length strings (''s); in SQL, the view displays the zero-length strings properly, but when i view the linked view in Access97, the zero-length strings are displayed as spaces; is this a SQL problem or an Access Problem? Is there a solution?

Example of display:
10132 Hampton, VA: A. Deepak Publishing

SELECT PublisherID, Info = CASE WHEN City IS NOT NULL
THEN City + CASE WHEN State IS NOT NULL
THEN ', ' + State ELSE '' END + ': ' ELSE ''
END + Publisher
FROM tblLibraryPublishers

When view is linked in Access97, the display will be:
10132 Hampton, VA : A. Deepak Publishing
(this spacing can produce a number of lookup/search problems if only the Publisher name is displayed because a space is added to the beginning of the Publisher name)

Thank you!
Llyal

View 1 Replies View Related

Storing DATA To Sql Server From Access Efficiency

Jun 13, 2008

 I have a function which is writing thousands of records coming from Access database and I was wondering if someone can suggest how can reconstruct my code for faster processing. Here my code: Public Sub MigrateNFSData(ByVal calcTbl As DataTable, ByVal strDBConnection As String)        Dim sqlServerConn As New SqlConnection(strDBConnection)        'Define stored procedures        Dim command As New SqlCommand        Dim getAccID As New SqlCommand("GetAccountID", sqlServerConn)        Dim getActionID As New SqlCommand("GetActionID", sqlServerConn)        Dim getExchangeID As New SqlCommand("GetExchangeID", sqlServerConn)        'Dim getParrentAccID As New SqlCommand("GetParentAccID", sqlServerConn)        Dim getStatusID As New SqlCommand("GetStatusID", sqlServerConn)        Dim getTraderID As New SqlCommand("GetTraderID", sqlServerConn)        Dim getGroupID As New SqlCommand("GetGroupID", sqlServerConn)        Dim getGroupIDByIP As New SqlCommand("GetGroupIDByIP", sqlServerConn)        Dim getTraderIDByIP As New SqlCommand("GetTraderIDByIP", sqlServerConn)        'Define insert records stored procedures        Dim insertAcc As New SqlCommand("InsertAccount", sqlServerConn)        insertAcc.CommandType = CommandType.StoredProcedure        Dim insertAction As New SqlCommand("InsertAction", sqlServerConn)        insertAction.CommandType = CommandType.StoredProcedure        Dim insertExchange As New SqlCommand("InsertExchange", sqlServerConn)        insertExchange.CommandType = CommandType.StoredProcedure        Dim insertGroup As New SqlCommand("InsertGroup", sqlServerConn)        insertGroup.CommandType = CommandType.StoredProcedure        Dim insertStatus As New SqlCommand("InsertStatus", sqlServerConn)        insertStatus.CommandType = CommandType.StoredProcedure        Dim insertTrader As New SqlCommand("InsertTrader", sqlServerConn)        insertTrader.CommandType = CommandType.StoredProcedure        Try            sqlServerConn.Open()        Catch ex As Exception            MessageBox.Show("Connection failed to open!")        End Try        'Set parameters to helper Get Stored Procedures to retreive Id's         getAccID.Parameters.Add("@AccName", SqlDbType.NVarChar)        getAccID.CommandType = CommandType.StoredProcedure        getActionID.Parameters.Add("@ActionName", SqlDbType.NVarChar)        getActionID.CommandType = CommandType.StoredProcedure        getExchangeID.Parameters.Add("@ExchName", SqlDbType.NVarChar)        getExchangeID.CommandType = CommandType.StoredProcedure        'getParrentAccID.Parameters.Add("@ParentName", SqlDbType.NVarChar)        'getParrentAccID.CommandType = CommandType.StoredProcedure        getStatusID.Parameters.Add("@StatusName", SqlDbType.NVarChar)        getStatusID.CommandType = CommandType.StoredProcedure        getTraderID.Parameters.Add("@TraderName", SqlDbType.NVarChar)        getTraderID.CommandType = CommandType.StoredProcedure        getGroupID.Parameters.Add("@GroupName", SqlDbType.NVarChar)        getGroupID.CommandType = CommandType.StoredProcedure        getGroupIDByIP.Parameters.Add("@IP", SqlDbType.NVarChar)        getGroupIDByIP.CommandType = CommandType.StoredProcedure        getTraderIDByIP.Parameters.Add("@IP", SqlDbType.NVarChar)        getTraderIDByIP.CommandType = CommandType.StoredProcedure        command = New SqlCommand("InsertTradeTransaction", sqlServerConn)        command.CommandType = CommandType.StoredProcedure        'Set Parameters for Insert stored procedures        insertAcc.Parameters.Add("@Account", SqlDbType.Text)        insertAction.Parameters.Add("@ActionName", SqlDbType.Text)        insertExchange.Parameters.Add("@Exchange", SqlDbType.Text)        insertGroup.Parameters.Add("@Group", SqlDbType.Text)        insertGroup.Parameters.Add("@ACCID", SqlDbType.Int)        insertGroup.Parameters.Add("@GroupID", SqlDbType.UniqueIdentifier)        insertStatus.Parameters.Add("@StatusName", SqlDbType.Text)        insertTrader.Parameters.Add("@Group", SqlDbType.UniqueIdentifier)        insertTrader.Parameters.Add("@IP", SqlDbType.Text)        insertTrader.Parameters.Add("@TraderName", SqlDbType.Text)        insertTrader.Parameters.Add("@TraderID", SqlDbType.UniqueIdentifier)        'Adding stored Get Stored Procedure's parameters-----------------------        command.Parameters.Add("@OrderNum", SqlDbType.Text)        command.Parameters.Add("@ACC_ID", SqlDbType.Int)        command.Parameters.Add("@Group_ID", SqlDbType.UniqueIdentifier)        command.Parameters.Add("@Trader_ID", SqlDbType.UniqueIdentifier)        command.Parameters.Add("@Exch_ID", SqlDbType.Int)        command.Parameters.Add("@Date", SqlDbType.DateTime)        command.Parameters.Add("@Time", SqlDbType.DateTime)        command.Parameters.Add("@ActionID", SqlDbType.Int)        command.Parameters.Add("@StatusID", SqlDbType.Int)        command.Parameters.Add("@TimeSent", SqlDbType.DateTime)        command.Parameters.Add("@Qty", SqlDbType.Int)        command.Parameters.Add("@Product", SqlDbType.Text)        command.Parameters.Add("@MMYYY", SqlDbType.Text)        command.Parameters.Add("@ExchOrderID", SqlDbType.Text)        command.Parameters.Add("@TimeTicks", SqlDbType.Int)        command.Parameters.Add("@W2G", SqlDbType.Int)        command.Parameters.Add("@W2Exch", SqlDbType.Int)        command.Parameters.Add("@G2ExchDerived", SqlDbType.Int)        command.Parameters.Add("@Msg", SqlDbType.NVarChar)        'command.Parameters.Add("@ExchDate", SqlDbType.DateTime)        'command.Parameters.Add("@ParentID", SqlDbType.Int)        'Paremeters Defenition--------------------------------------        'Parsing DateTime Objects        Dim formaterA As IFormatProvider        formaterA = New System.Globalization.CultureInfo("en-GB", True)        Dim dateObj As Date        'DEBUG        'Dim rows = calcTbl.Rows.Count        Dim colValues = GetColumnsValues(calcTbl)        'Write table with computed NFS data to sql server DB        For Each dr As DataRow In calcTbl.Rows            Dim orderNo = dr.Item("Order No").ToString()            command.Parameters("@OrderNum").Value = dr.Item("Order No").ToString()            getAccID.Parameters("@AccName").Value = dr.Item("Acct").ToString()            If getAccID.ExecuteScalar() = Nothing Then                insertAcc.Parameters("@Account").Value = dr.Item("Acct").ToString()                insertAcc.ExecuteNonQuery()                getAccID.Parameters("@AccName").Value = dr.Item("Acct").ToString()                command.Parameters("@ACC_ID").Value = getAccID.ExecuteScalar()            Else                command.Parameters("@ACC_ID").Value = Int32.Parse(getAccID.ExecuteScalar()).ToString()            End If            getGroupID.Parameters("@GroupName").Value = dr.Item("Group ID").ToString()            If getGroupID.ExecuteScalar() = Nothing Then                'Find Group by IP address if input Data Table doesn't have group                getGroupIDByIP.Parameters("@IP").Value = dr.Item("IP").ToString()                If getGroupIDByIP.ExecuteScalar() = Nothing Then                    insertGroup.Parameters("@GroupID").Value = Guid.NewGuid                    insertGroup.Parameters("@Group").Value = dr.Item("Group ID")                    insertGroup.Parameters("@ACCID").Value = getAccID.ExecuteScalar()                    insertGroup.ExecuteNonQuery()                    command.Parameters("@Group_ID").Value = getGroupID.ExecuteScalar()                Else                    command.Parameters("@Group_ID").Value = getGroupIDByIP.ExecuteScalar()                End If            Else                command.Parameters("@Group_ID").Value = getGroupID.ExecuteScalar()            End If            getTraderID.Parameters("@TraderName").Value = dr.Item("Trd ID").ToString()            If getTraderID.ExecuteScalar() = Nothing Then                getTraderIDByIP.Parameters("@IP").Value = dr.Item("IP").ToString()                If getTraderIDByIP.ExecuteScalar() = Nothing Then                    insertTrader.Parameters("@Group").Value = getGroupID.ExecuteScalar()                    insertTrader.Parameters("@IP").Value = dr.Item("IP").ToString()                    insertTrader.Parameters("@TraderName").Value = dr.Item("Trd ID").ToString()                    insertTrader.Parameters("@TraderID").Value = Guid.NewGuid                    insertTrader.ExecuteNonQuery()                    command.Parameters("@Trader_ID").Value = getTraderID.ExecuteScalar()                Else                    command.Parameters("@Trader_ID").Value = getTraderIDByIP.ExecuteScalar()                End If            Else                command.Parameters("@Trader_ID").Value = getTraderID.ExecuteScalar()            End If            getExchangeID.Parameters("@ExchName").Value = dr.Item("Exch").ToString()            If getExchangeID.ExecuteScalar() = Nothing Then                insertExchange.Parameters("@Exchange").Value = dr.Item("Exch").ToString()                insertExchange.ExecuteNonQuery()                command.Parameters("@Exch_ID").Value = getExchangeID.ExecuteScalar()            Else                command.Parameters("@Exch_ID").Value = getExchangeID.ExecuteScalar()            End If            getActionID.Parameters("@ActionName").Value = dr.Item("Action").ToString()            If getActionID.ExecuteScalar() = Nothing Then                insertAction.Parameters("@ActionName").Value = dr.Item("Action").ToString()                command.Parameters("@ActionID").Value = getActionID.ExecuteScalar()            Else                command.Parameters("@ActionID").Value = getActionID.ExecuteScalar()            End If            getStatusID.Parameters("@StatusName").Value = dr.Item("Status").ToString()            If getStatusID.ExecuteScalar() = Nothing Then                insertStatus.Parameters("@StatusName").Value = dr.Item("Status").ToString()                insertStatus.ExecuteNonQuery()                command.Parameters("@StatusID").Value = getStatusID.ExecuteScalar()            Else                command.Parameters("@StatusID").Value = getStatusID.ExecuteScalar()            End If            'getParrentAccID.Parameters("@ParentName").Value = ""            'If getParrentAccID.ExecuteScalar() = 0 Then            'insert parent acc            'Else            'command.Parameters("@ParentID").Value = getParrentAccID.ExecuteScalar()            dateObj = Date.Parse(dr.Item("Exch Date").ToString(), formaterA)            command.Parameters("@Date").Value = dateObj            command.Parameters("@Time").Value = DateTime.Parse(dr.Item("Time").ToString())            command.Parameters("@TimeSent").Value = DateTime.Parse(dr.Item("Time Sent").ToString())            If (dr.Item("Qty").Equals(System.DBNull.Value)) Then                command.Parameters("@Qty").Value = System.DBNull.Value            Else                command.Parameters("@Qty").Value = Int32.Parse(dr.Item("Qty").ToString())            End If            command.Parameters("@Product").Value = dr.Item("Product").ToString()            command.Parameters("@MMYYY").Value = dr.Item("MMMYY").ToString()            command.Parameters("@ExchOrderID").Value = dr.Item("Exchange Order ID").ToString()            If (dr.Item("Time Ticks").Equals(System.DBNull.Value)) Then                command.Parameters("@TimeTicks").Value = System.DBNull.Value            Else                command.Parameters("@TimeTicks").Value = Int32.Parse(dr.Item("Time Ticks").ToString())            End If            'command.Parameters("@ExchDate").Value = Date.Parse(dr.Item("Exch Date").ToString())            'command.Parameters("@ExchDate").Value = Convert.ToDateTime(dr.Item("Exch Date").ToString())            'DEBUG            'Dim strW2G = dr.Item("W2G").ToString()            'Dim strW2E = dr.Item("W2E").ToString()            If (dr.Item("W2G").Equals(System.DBNull.Value)) Then                command.Parameters("@W2G").Value = System.DBNull.Value            Else                command.Parameters("@W2G").Value = Int32.Parse(dr.Item("W2G").ToString())            End If            If dr.Item("W2E").Equals(System.DBNull.Value) Then                command.Parameters("@W2Exch").Value = System.DBNull.Value            Else                command.Parameters("@W2Exch").Value = Int32.Parse(dr.Item("W2E").ToString())            End If            'command.Parameters("@G2ExchDerived").Value = Int32.Parse(dr.Item("Time Delta G2E").ToString())            If (dr.Item("Time Delta G2E").Equals(System.DBNull.Value)) Then                command.Parameters("@G2ExchDerived").Value = System.DBNull.Value            Else                command.Parameters("@G2ExchDerived").Value = Int32.Parse(dr.Item("Time Delta G2E").ToString())            End If            command.Parameters("@Msg").Value = dr.Item("Msg").ToString()            command.ExecuteNonQuery()        Next        sqlServerConn.Close()    End Sub

View 3 Replies View Related

Efficiency Of Sql Server On Searching On Text Field

Jul 26, 2007

Hi

We have a application running on Sql server 2005, which require to browse/search text field. Does anyone know if Sql server's search/browse performance on text field is better than oracle?

The table the application will search on is a customer table that has a 10000 records in it, does this size of table casue a performance problem for sql server 2005 if I index the text field?

Please advise, thanks for your help!

Li

View 4 Replies View Related

Key Factors For Efficiency Of SQL Server 2000 (performace Tuning)

Apr 18, 2007

Hello All,



I am new to SQL Server 2000. I am eager to learn what factors/parameters are key for obtaining good retrieval performance of SQL Server 2000 (prompt response to user query).

I recall that someone told me that a recordset with asOpenStatic cursor type has higher speed than that of a recordset with other cursor types.

Is this true or false. Are there really some key parameters for perfomance tuning .


Thanks

View 2 Replies View Related

Linked Server ( Not Able To Access Any Tables Under LINKED SERVER From My DESKTOP Enterprise Manager

Mar 25, 2002

Hi ,
On my Desktop i registered Production Server in Enterprise Manager
on that Server if i go to SecurityLinked Servers
There is another Server is already mapped, when i am trying to see the Tables under that one of the
Linked Server i am getting the Error message saying that
"Error 17 SQL Server does not exist or access denied"

if i went to Production Server location and if i try to see the tables i am able to see properly, no problems
why i am not able to see from my Desk top
i am using the sa user while mapping the Production Server on my DESKTOP using (ENTERPRISE MANAGER)

And i check the Client Network Utility in the Alias using Named Pipe only, i changed to TCP/IP still same problem
What might the Problem how can i see the Tables in Linked Server from my DESKTOP

Thanks

View 5 Replies View Related

DB Engine :: How To Point Linked Server To Specific Database / Rename Linked Server

Apr 24, 2015

I am using Linked Server in SQL Server 2008R2 connecting to a couple of Linked Servers.

I was able to connect Linked Servers, but I cannot point to a specific database in a Linked Server, also, I cannot rename Linked Server's name.

How to point the linked server to a specific database? How to rename the Linked Server?

The following is the code that I am using right now:

USE [master]
GO
EXEC master.dbo.sp_addlinkedserver
    @server = N'Machine123Instance456',
    @srvproduct=N'SQL Server' ;
GO
EXEC sp_addlinkedsrvlogin 'Machine123Instance456', 'false', NULL, 'username', 'password'  

View 6 Replies View Related

Scripting Stored Procedure Add With Linked Server Reference When Linked Server Is Not Available

Jul 18, 2006

Is there a way to bypass the syntax checking when adding a stored procedure via a script?

I have a script that has a LINKed server reference (see below) .

INSERT
INTO ACTDMSLINKED.ACTDMS.DBO.COILS ..etc.

ACTDMSLINKED does not exist at the time I need to add the stored procedure that references it.

PLEASE to not tell me to add the LINK and then run the script. This is not an option in this scenerio.

Thanks,

Terry

View 4 Replies View Related

Are Embedded Views (Views Within Views...) Evil And If So Why?

Apr 3, 2006

Fellow database developers,I would like to draw on your experience with views. I have a databasethat includes many views. Sometimes, views contains other views, andthose views in turn may contain views. In fact, I have some views inmy database that are a product of nested views of up to 6 levels deep!The reason we did this was.1. Object-oriented in nature. Makes it easy to work with them.2. Changing an underlying view (adding new fields, removing etc),automatically the higher up views inherit this new information. Thismake maintenance very easy.3. These nested views are only ever used for the reporting side of ourapplication, not for the day-to-day database use by the application.We use Crystal Reports and Crystal is smart enough (can't believe Ijust said that about Crystal) to only pull back the fields that arebeing accessed by the report. In other words, Crystal will issue aSelect field1, field2, field3 from ReportingView Where .... eventhough "ReportingView" contains a long list of fields.Problems I can see.1. Parent views generally use "Select * From childview". This meansthat we have to execute a "sp_refreshview" command against all viewswhenever child views are altered.2. Parent views return a lot of information that isn't necessarilyused.3. Makes it harder to track down exactly where the information iscoming from. You have to drill right through to the child view to seethe raw table joins etc.Does anyone have any comments on this database design? I would love tohear your opinions and tales from the trenches.Best regards,Rod.

View 15 Replies View Related

About Efficiency

Sep 20, 2006

I want to select one field from a table,but it should on some conditionswhich refer to 5 table ,such as A.FILED1=B.FIELD1 AND B.FIELD2=C.FIELD3 AND....Should I use case "select sum(a.amount) from a,b,c,... wherea.field1=b.field1 and b.field2=c.field2 and ..." or "select sum(a.amount)from select b.field1 from select c.field2 from...."?And which case is moreefficiency?thanks!ÎÒÏë¼ÆËãÒ»¸ö±íÖеÄij¸ö×ֶεĺͣ¬µ«´Ë¼Ç¼ÐèÔÚ´Ó¶à¸ö ±íÖвéѯ´Ë¼Ç¼ÊÇ·ñÂú×ãÌض¨µÄÌõ¼þ¡£ÄÇôÎÒÊÇÓÃselect ..from ...where ..and ..and..and ..and ..»¹ÊÇÓÃselect ..fromselect ..from select ..from ......£¿ÇëÎÊÊÇÄÄÒ»¸öЧÂʸߣ¿Ð»Ð»£¡

View 2 Replies View Related

Search Efficiency

Jan 29, 2007

Hello,I am looking at optimizing site searching on a web application.  I have two thoughts on the idea:1. create views with fulltext indexes combining records from multiple tables.2. create a table with an xml column and primary index.   I understand the xml column type has the overhead of a BLOB under the hood, but that a primary xml index can "shred" the contents and improve parsing.  I also read the xml column is actually searched as a tree, providing some variant of log(n) run time. Does anyone know of good literate on this subject, the more big O notation, runtime analysis types of posts the better.Thanks 

View 5 Replies View Related

SQLClient Efficiency

Jul 24, 2007

Hi guys,
Since the project that i'm developing is rapidly increasing, the pages seems to be getting slower everytime you view it. I would like to ask if code below would be efficient enough for several simultaneous request of data or if you have any other suggestions, you are welcome to add:
1    Public Shared Function QueryDatabase(ByVal sql As String) As DataTable2    3                ' SQL Server Connection Object Variable4                Dim _oConnection As SqlConnection5                ' SQL Server Command Object Variable6                Dim _oCommand As SqlCommand7                ' SQL Server Data Adapter Object Variable8                Dim _oAdapter As SqlDataAdapter9                ' DataTable Object Variable (Early Binding)10               Dim _oDataTable As New DataTable11   12               ' Instantiate Connection Object with connection string13               _oConnection = New SqlConnection("Data Source=XXX.XXX.XXX.XXX;Initial Catalog=XXXXXX;User=XXX;Pwd=XXX;")14               ' Instantiate Command Object with SQL String and Connection Object15               _oCommand = New SqlCommand(sql, _oConnection)16               ' Instantiate Data Adapter Object with Command Object17               _oAdapter = New SqlDataAdapter(_oCommand)18               ' Fill the DataTable Object with the retrieve records19               _oAdapter.Fill(_oDataTable)20   21               ' Release resources used by DataAdapter Object22               _oAdapter.Dispose()23   24               ' Release resources used by Command Object25               _oCommand.Dispose()26   27               ' Close the connection of the Connection Object from SQL Server28               _oConnection.Close()29   30               ' Release resources used by Connection Object31               _oConnection.Dispose()32   33               ' Return the retrieve records34               Return _oDataTable35   36           End Function Thanks a lot.

View 2 Replies View Related

SQL Efficiency 3 QUESTIONS

Nov 13, 2005

Hey,I am developing a website which will be used by a large number of people so I am concerned about efficiency.Sorry for the three posts but anyone with any info would be appreciated.The database has the following tables:                FACILITY-----MEETING ----                  |                                             | USERS----                                              -------- MEETING_INVITE -------- REMINDER                    |                                            |                    ---------CONTACTS-------When the user logs in I use there username to access the rest of the tables. I get all of the users information out of the database in one go and store it in a dataset.So when a user accesses there meetings page, I pass the dataset to that page with a server transfer.Question 1 > Is it more efficient to open the database once and access all the information and pass the information to seperate tables or is it more efficient to access the database on the individual pages and thus not passing of information.---------------------------------------------------------------------------------------------------------------In order to access the information I use 6 Select statements in a rowHere is an example of my select statments: SELECT * FROM USERS WHERE email = textbox_emailSELECT FACILITY.* FROM FACILITY, USERS WHERE FACILITY.email = USERS.email AND USERS.email = textbox_emailBy the time I get to the REMINDER table I am combining all the tables and my query is eight lines long.Question 2 > Is there a way of combining the results of a previous select to access information?---------------------------------------------------------------------------------------------------------------Question 3 > What do you think of my table design? The lines represent one to many relationships. If you can give me any tips on databases please do.Thanks for your time,Padraic

View 2 Replies View Related

Database Efficiency

Nov 21, 2005

Hello all,I am developing a website which may be used by a large number of people in the future and I am concerned about performance.

Is it better to have one table with 50, 000 rows or 5,000 tables with 10 rows each?
Is there a way to divide a table in two if the table reaches a certain size?
Is there a limit on the size of tables?
Is there a limit on the number of tables?
Is it possible to create tables from vb.net?
Is it possible to program checks into sql server? For example, could I delete data that has passed a certain date or send an automated email when a time is reached?
Thanks for your time,Padraic 

View 2 Replies View Related

SQL Efficiency Problem

Sep 7, 2000

Hey people

I'd be really grateful if someone can help me with this. Could someone explain the following:
If the following code is executed, it runs instantly:

declare @SellItemID numeric (8,0)
select @SellItemID = 5296979

SELECT distinct s.sell_itm_id
FROM stor_sell_itm s
WHERE (s.sell_itm_id = @SellItemID )

However, if I use this WHERE clause instead -

WHERE (@SellItemID = 0 OR s.sell_itm_id = @SellItemID)

- it takes 70 micro seconds. When I join a few more tables into the statement, the difference is 4 seconds!

This is an example of a technique I'm using in loads of places - I only want the statement to return all records if the filter is zero, otherwise the matching record only. I think that by using checking the value of the variable in the WHERE clause, a table scan is used instead of an index. This seems nonsensical since the variable is effectively a constant. Wrapping the entire select statement with an IF or CASE works, but when I've got 10 filters I'd have to 100 select statements.
I DON'T GET IT!! There must be a simple answer, HELP!!
Jo

PS this problem seems to occur both in 6.5 and 7.0

View 1 Replies View Related

ADO Update Efficiency

Aug 31, 2004

Hi All,

I tried my luck in the Access forum and I've search the web and MSDN for an answer with little luck.

Simply, is it better to update a table via an UPDATE query or Recordset manipulation?

I have read that if you were to update 10,000 records an UPDATE query is more efficient (obviously), but does that transend down to say 1 - 10 updates?

i.e. There are six unique updates I want to make to 6 different rows. Should I code the backend VB to execute 6 different queries or seek and update a recordset?

It's a MS Access XP app with ADO 2.8.

My gut feeling on this is that making 6 update queries is more efficient, both with system resources and record-locking issues; I'd just like another opinion on the matter.

I appreciate your help!
Thanks,
Warren

View 2 Replies View Related

Cursor Efficiency?

Apr 8, 2008

I am using nested cursors in my script below, and wonder if there is a more efficient way please?


USE ar
GO
DECLARE @mortgage INT,
@mortgage_sequence int,
@getMortgage CURSOR,
@notes_1 varchar(MAX),
@notes_2 varchar(MAX),
@notes_3 varchar(MAX),
@notes_4 varchar(MAX),
@notes_5 varchar(MAX),
@notes_6 varchar(MAX),
@notes_7 varchar(MAX),
@notes_8 varchar(MAX),
@notes_9 varchar(MAX),
@notes_10 varchar(MAX),
@notes_11 varchar(MAX),
@notes_12 varchar(MAX),
@notesComplete varchar(MAX),
@addedUser varchar(255),
@addedDate varchar(255),
@amendedUser varchar(255),
@amendedDate varchar(255),
@sequence int,
@getDetail CURSOR


SET @getMortgage = CURSOR FOR
SELECT DISTINCT Mortgage_Number, Mortgage_Note_Sequence_No
FROM format_additional_notes
GROUP BY Mortgage_Number, Mortgage_Note_Sequence_No
ORDER BY Mortgage_Number ASC
OPEN @getMortgage
FETCH NEXT
FROM @getMortgage INTO @mortgage, @mortgage_sequence
WHILE @@FETCH_STATUS = 0
BEGIN

SET @getDetail = CURSOR FOR
SELECT ltrim(rtrim(Additional_Text_1)),
ltrim(rtrim(Additional_Text_2)),
ltrim(rtrim(Additional_Text_3)),
ltrim(rtrim(Additional_Text_4)),
ltrim(rtrim(Additional_Text_5)),
ltrim(rtrim(Additional_Text_6)),
ltrim(rtrim(Additional_Text_7)),
ltrim(rtrim(Additional_Text_8)),
ltrim(rtrim(Additional_Text_9)),
ltrim(rtrim(Additional_Text_10)),
ltrim(rtrim(Additional_Text_11)),
ltrim(rtrim(Additional_Text_12)),
Mortgage_Note_Sequence_No,
Extra_Added_by_User,
Extra_Added_on_Date,
Extra_Amended_By_User,
Extra_Amended_By_Date

FROM format_additional_notes
WHERE Mortgage_Number = @mortgage AND Mortgage_Note_Sequence_No = @mortgage_sequence
ORDER BY Mortgage_Note_Sequence_No
OPEN @getDetail
SET @notesComplete = ''
FETCH NEXT FROM @getDetail INTO @notes_1,
@notes_2,
@notes_3,
@notes_4,
@notes_5,
@notes_6,
@notes_7,
@notes_8,
@notes_9,
@notes_10,
@notes_11,
@notes_12,
@sequence,
@addedUser,
@addedDate,
@amendedUser,
@AmendedDate
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @notesComplete = @notesComplete +
ISNULL(@notes_1,'') + ' ' +
ISNULL(@notes_2,'') + ' ' +
ISNULL(@notes_3,'') + ' ' +
ISNULL(@notes_4,'') + ' ' +
ISNULL(@notes_5,'') + ' ' +
ISNULL(@notes_6,'') + ' ' +
ISNULL(@notes_7,'') + ' ' +
ISNULL(@notes_8,'') + ' ' +
ISNULL(@notes_9,'') + ' ' +
ISNULL(@notes_10,'') + ' ' +
ISNULL(@notes_11,'') + ' ' +
ISNULL(@notes_12,'')

FETCH NEXT FROM @getDetail INTO @notes_1,
@notes_2,
@notes_3,
@notes_4,
@notes_5,
@notes_6,
@notes_7,
@notes_8,
@notes_9,
@notes_10,
@notes_11,
@notes_12,
@sequence,
@addedUser,
@addedDate,
@amendedUser,
@AmendedDate
END


INSERT INTO format_additional_notes_1
(Mortgage_Number,
Mortgage_Note_Sequence_No,
Additional_Text,
Extra_Added_By_User,
Extra_Added_on_Date,
Extra_Amended_By_User,
Extra_Amended_By_Date)
VALUES
( @mortgage,
@sequence,
@notesComplete,
@addedUser,
@addedDate,
@amendedUser,
@amendedDate)

CLOSE @getDetail
DEALLOCATE @getDetail
FETCH NEXT
FROM @getMortgage INTO @mortgage, @mortgage_sequence
END
CLOSE @getMortgage
DEALLOCATE @getMortgage
GO

View 6 Replies View Related

Linking Efficiency

May 6, 2008

I would like to use MVJ's formula for creating a date table.

I would like to use it with our main ERP database. However, I am reluctant to make changes to it because I fear that at some point when we upgrade that software and it's database that the upgrade program will delete my table.

So, here is my question. Performance wise, does it matter whether I add the date table to our ERP database or if I create another database (on the same server) for the custom date table? Does linking between databases take substantially longer than linking within the same database?

View 1 Replies View Related

About Efficiency(rephrased)

Sep 21, 2006

hi,Allcould you tell me which case is more efficiency?(my tables have no index)And does it has any else case more efficiency?case1:"select sum(Invoice_Production.Quantity) from Invoice_Production,(select[dat_Item].ItemCode from [dat_Item],(select [dat_MachineType].MachineTypeIDfrom [dat_MachineType]"&subQuery&") as T3 where [dat_Item].MachineTypeID =T3.machinetypeid) as T1,(select [Invoice].InvoiceNo from Invoice,(select[users].user_id from [users] where [Users].User_ID = '"& rs2(0) &"') as T4where T4.User_ID = invoice.dealerno and Invoice.Cyear >= "&startYear&" andInvoice.Cyear <= "&endYear&" and Invoice.Cmonth >= "&startMonth&" andInvoice.Cmonth <= "&endMonth&") as T2 where invoice_production.ItemCode =T1.ItemCode and T2.invoiceno = invoice_production.invoiceno"case2:"select sum(Invoice_Production.Quantity) from[Invoice_Production],[Invoice],[dat_MachineType],[dat_Item],[users] where[users].user_id = [invoice].DealerNo and [dat_Item].ItemCode =[Invoice_Production].ItemCode and [dat_Item].MachineTypeID =[dat_MachineType].MachineTypeID and [Invoice_Production].InvoiceNo =[Invoice].InvoiceNo and [Users].User_ID = '"& rs2(0) &"' and Invoice.Cyear


Quote:

View 2 Replies View Related

Efficiency Of Query

Jul 20, 2005

I have the following 2 tables:location:placelftrgt-------------------Europe099England110France1120Italy2130Asia100199London1212staff:namelocLft--------------Edwards0Smith1Leveil11Rossi21Lee12Chan100location uses the Celko hierarchy model.I wish to retrieve for a location the names of all staff within it andthe hierarchy of place associated with that member of staff, eg aquery for Europe should return all staff in Europe, and for Lee I wishto return Lee-London, Lee-England, Lee-Europe etc.I can achieve this using a subquery, ieSELECT name, placeFROM staff, locationWHERE name IN (SELECT nameFROM staff, locationWHERE place='Europe' And locLft>=location.lft AndlocLft<=location.rgt)AND locLft>=lft AND locLft<=rgtBut is this the most efficient way of doing so?Thanks

View 1 Replies View Related

Efficiency Advice Please

Nov 20, 2007



Greetings all,

I need to determine a hierarchy from a table with EmpID's and SupID's. Basically, the President doesn't have a SupID so it will be null. I need to determine programatically the hierarchy to keep it simple.

I have code that works and I was hoping for advice on optimizing it 'cuz it uses a cursor.


Also, It only deals with less than 300 records.




Code Block
CREATE TABLE Employee(fName varchar(30), EmpID int, SupID int)
INSERT INTO Employee SELECT 'Adam', 1, 4
INSERT INTO Employee SELECT 'Joe', 2, 4
INSERT INTO Employee SELECT 'John', 3, 4
INSERT INTO Employee SELECT 'Frank', 4, 10
INSERT INTO Employee SELECT 'Jane', 5, 10
INSERT INTO Employee SELECT 'Kristy', 6, 10
INSERT INTO Employee SELECT 'Angie', 10, 11
INSERT INTO Employee SELECT 'Ron', 11, NULL


--=====================================================================================

-- CODE

--=====================================================================================

CREATE TABLE #temp(Hierarchy int, myName varchar(30), SupID int, EmpID int)


INSERT INTO #temp SELECT 1, fName, SupID, EmpID FROM Employee WHERE SupID IS NULL

--NULL SupID means that they are at the top most branch


DECLARE @Counter int --Counter is used to increment

SET @Counter = 1


DECLARE MY_CURSOR Cursor

FOR

SELECT SupID, EmpID, fName

FROM Employee

ORDER BY SupID --ORDER BY SupID to bring NULLs to top


Open My_Cursor

DECLARE @EmpID int, @SupID int, @Name varchar(30)

FETCH NEXT FROM MY_Cursor INTO @EmpID, @SupID, @Name

WHILE (@@FETCH_STATUS = 0)

BEGIN

SET @Counter = (SELECT MAX(Hierarchy) FROM #temp) + 1 --Get the highest hierarchy ID and increment by 1


INSERT INTO #temp

SELECT @Counter, fName, SupID, EmpID

FROM Employee

WHERE SupID IN (SELECT EmpID FROM #temp WHERE EmpID = @SupID)


FETCH NEXT FROM MY_CURSOR INTO @EmpID, @SupID, @Name

END

CLOSE MY_CURSOR

DEALLOCATE MY_CURSOR

SELECT * FROM #temp

DROP TABLE #temp




Thanks in advance,

Adam

View 1 Replies View Related

Autoshrink Efficiency

Aug 2, 2007

Howdy folks!

I've got a database that needs to run 24/7. I'm looking into maintanence options and wanted to run the following by y'all:

Ok, I've read the MSDN "Maintaining databases" article and noticed the following statement about autoshrinking: "This technique uses almost no processor time and memory". I also searched these forums and found that many users say autoshrinking heavily lags down sql transfers. So who's right? And if it does lag transfers, by how much?

Another question I have about autoshrink is fragmentation. It would seem to me that over time solely depending on autoshrink would cripple a server in terms of fragmentation; is this the case?

Also, does autoshrink (or manual shrinking or compacting) update the statistics?

Final question!!! I'm programming in native c++, is there a way for me to run commands such as "DBCC SHRINKDATABASE" in native OLE DB code?

Thanks!

View 4 Replies View Related

General Question About SQL Efficiency

Apr 14, 2008

I have a website that is probably going to hold a sizable amount of data.  The data will be specific to groups of users based on login credentials.  Would it be more efficient to create a whole new database for each group of users, or create new tables for the groups in the existing database? 
Any thoughts on the topic would be appreciated.
Thanks

View 3 Replies View Related

Question Of Efficiency. One Table Or Many

Mar 30, 2006

I'm working on a "comments" section for our application suite.
My thoughts are to have 1 Comments table, which is then linked to a comment Log table.
For each section: Item, Group, Section, User, Package (these can all have comments on them) I will link them to the comments in a many to many relationship.
Example:
Comments Table-CommentID-UserID
UserComments-UserID-CommentID
User_Table-UserID....
Would doing that be more efficient than having 1 seperate comments table, and log table for each area I want to have comments?
 
 

View 1 Replies View Related

Checking The Efficiency Of Query?

Feb 21, 2015

Suppose I have two tables(Customer and Order) which are as follows:

Code:
Customer
customer_id
first_name

[Code]....

Another thing I am concerned about is that in the line INNER JOIN Order ON Customer.customer_id = Order.customer_id , I have written Customer.customer_id on the left hand side. Is that correct or I should write it on the right hand side of the equal sign?

View 3 Replies View Related

Correlated Subquery Efficiency

Jul 20, 2005

Hello All,I have a SQL Query with multiple correlated Subqueries in it. When itgets executed it runs rather slow due to the size of the QT table.Does anybody have any suggestions how to alter this query to make itrun faster, or any index suggestions to assist it with.Query is as follows:SELECT SH_ORDER, SH_CUST, SH_ADD_DATE, SH_CUST_REF, SH_DESC, SH_EXCL,(SELECT SUM(QT_CHARGE) AS QT_CHARGE_SUMFROM QT INNER JOINJU ON QT_PROC_CODE = JU_PROC_CODEWHERE (QT_NUMBER = ' ' + SH_NOTE_2) AND (JU_PROC_GRP < 2)AND (QT_QUOTE_JOB = 0))AS [PREPCOST],(SELECT SUM(QT_CHARGE) AS QT_CHARGE_SUMFROM QT INNER JOINJU ON QT_PROC_CODE = JU_PROC_CODEWHERE (QT_NUMBER = ' ' + SH_NOTE_2) AND (QT_QUOTE_JOB = 0)AND (JU_PROC_GRP > 1) AND (JU_CATEG = 1)) AS [MATCOST],(SELECT SUM(QT_CHARGE) AS QT_CHARGE_SUMFROM QT INNER JOINJU ON QT_PROC_CODE = JU_PROC_CODEWHERE (QT_NUMBER = ' ' + SH_NOTE_2) AND (QT_QUOTE_JOB = 0)AND (JU_PROC_GRP > 1) AND (JU_CATEG = 3)) AS [OUTCOST],(SELECT SUM(QT_CHARGE) AS QT_CHARGE_SUMFROM QT INNER JOINJU ON QT_PROC_CODE = JU_PROC_CODEWHERE (QT_NUMBER = ' ' + SH_NOTE_2) AND (QT_QUOTE_JOB = 0)AND (JU_PROC_GRP > 1) AND((JU_CATEG = 0) OR (JU_CATEG = 2) OR (JU_CATEG = 4))) AS [LABCOST]FROM SHWHERE SH_ADD_DATE = '5/FEB/2004'thanks a lot for any helpJason

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved