Search Results

Search found 170665 results on 6827 pages for 'uk sql server user group'.

Page 159/6827 | < Previous Page | 155 156 157 158 159 160 161 162 163 164 165 166  | Next Page >

  • How to mount LUKS partition securely on server

    - by Ency
    I'm curious if it is possible to mount a partition encrypted by cryptsetup with LUKS securely and automatically on Ubuntu 10.0.4 LTS. For example, if I use the key for the encrypted partition, than that key has to be presented on a device that is not encrypted and if someone steals my disk they'll be able to find the key and decrypt the partition. Is there any safe way to mount an encrypted partition? If not, does anything exist to do what I want?

    Read the article

  • How do I connect remotely to SQL Server from Windows client?

    - by humble_coder
    Hi All, Having a bit of an issue connecting to SQL SERVER remotely from Windows. I've verified that all of my settings are correct via SQL SERVER MANAGEMENT STUDIO EXPRESS and SQL SERVER CONFIGURATION MANAGER. I can connect remotely using ODBC drivers from other OSes (e.g. OS X, Linux, etc). However, when I connect with the same credentials from a remote Windows machine using "SQL SERVER" as the driver I am told that the system cannot connect. I've tried creating an ODBC Data Source and I get the same error: Connection failed: SQLState: '01000' SQL Server Error: 14 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(InvalidInstance()). Connection failed: SQLState: '08001' SQL Server Error: 14 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]Invalid Connection From the non-windows machines I can use the IP address of the SQL Server just fine. However, on the remote Windows machine, neither IP address nor named instance works. FYI, I can create an ODBC Data Source using the named instance on the machine actually running the SQL Server (but this is, of course, nothing special -- just proof that it isn't completely hosed). One interesting note: If I use SQL STUDIO 2005 from a Windows client machine, I can use the IP address to connect remotely. Still, the whole reason I bring this up is because I need to use a software package I've written to connect to SQL Server remotely from Windows machines as well. Previously the solution was only needed to xfer data from SQL Server into a PostGRES or MySQL database on non-Windows machines (due to DBA preference). However, now they also want to move the data from the legacy software to MySQL even on Windows. Any assistance would be most appreciated. Feel free to provide a full example connection string. Best

    Read the article

  • Getting Started with windows server 2008/2012

    - by hbrock
    First let me say, I am a programmer(not a super star) but I want to get more into the system/network administration side of things. This because there are more jobs for system/network administrators in the area I live. Right now I am using virtual machines to learn how windows 2008/2012 works and to build labs with. But how would I prove to an employer what my skill set is with windows 2008/2012? As a programmer I would point to my past projects, code samples, and so on. Thanks for any help.

    Read the article

  • windows 2003 server read only access

    - by Bruce227
    Hi, I'm having a read only access problem. I have admin rights and can set the security for a folder to give me full access but when I switch the check box for read only off then exit out and open the properties back up it is checked. It is a grayed out check box if that helps. I just don't know how I have read/write access but can't switch off read only for a particular folder. Thanks

    Read the article

  • SQL Server 2000 Enterprise Edition - Login Fail for User (computer Name)/Guest

    - by Nazmuzzaman Manna
    Hi: Subject: SQL Server 2000 Enterprise Edition, windows XP Log-in fail for odbc sql server user computer name/guest I am connecting for several computer with the VB6 application with following connection string "PROVIDER=MSDASQL;driver={SQL Server};server=Computer Name.;uid=;pwd=;database=Test Name;" BUT, just Three Computer not Log-in. This three (connected with each other) are completely separate in other Room. I checked all possible options. Besides, which option is missing??? Please Help me...

    Read the article

  • SQL Server 2008 DBNETLIB error

    - by Joseph
    Hi all Our ASp.net applications getting error as below" [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied " But i can connect with Enterprise manager management studio and Query analaizer with out any issue. It was running these applications with out any issue long time. last one week we are getting this error.If we restart the server .it works then it will come again after 3to 4 hours. We are running on Windows 2003 server. I was seraching and didnt find a solution yet. If anybody knows anything for this error, please post the details to resolve. Thank you in Advance Joseph

    Read the article

  • Return SQL Query as Array in Powershell

    - by Emo
    I have a SQL 2008 Ent server with the databases "DBOne", "DBTwo", "DBThree" on the server DEVSQLSRV. Here is my Powershell script: $DBNameList = (Invoke-SQLCmd -query "select Name from sysdatabases" -Server DEVSQLSRV) This produces my desired list of database names as: Name ----- DBOne DBTwo DBThree I has been my assumption that anything that is returned as a list is an Array in Powershell. However, when I then try this in Powershell: $DBNameList -contains 'DBTwo' It comes back has "False" instead of "True" which is leading me to believe that my list is not an actual array. Any idea what I'm missing here? Thanks so much! Emo

    Read the article

  • Using SQL Server for WSS 3.0 instead of Windows Internal database

    - by val
    Hi Folks, There are actually two related questions: is it possible or advisable to use a full blown stand-alone SQL server for SharePoint Services WSS3.0 instead of the supplied windows internal database it comes with? The client I am working for is asking to utilize their existent SQL server for all WSS content databases to possibly minimize admin effort and improve performance. As well, would you advise to install WSS on one physical server and the content database on another server? Any gain in performace? Practicality? ect. The default is WSS and all of its databases are installed on the same single server. We don't really need a farm setup of MOSS, because the WSS capabilities are enough for our needs. Thanks, Val

    Read the article

  • SQL Server 2000 DTS Package Failing with "The number of failing rows exceeds the maximum specified"

    - by Scott McCormick
    I have inherited a SQL Server 2000 DTS package that migrates data from SQL Server to Oracle. This package moves about 20 tables' data to Oracle every night with no transformations, and it is then transformed by a set of SPs and used by a GIS application. Twice this week, during the migration between SQL Server and Oracle, the package has failed with "The number of failing rows exceeds the maximum specified". It has failed on a different table each time, though. Each time it's failed, we've rerun the process the next morning and it has worked. Because the process works the second time it's run, it makes me think the data is being changed by someone or something between the initial failure and our successful second run. I would like to change the DTS package to log the failing rows in a text document so we can compare them later. Can someone help me with that? I can't seem to figure that part out. Scott

    Read the article

  • Problems with sp_addlinkedserver in MSSQL 2000

    - by manneorama
    Hi! I'm having a bit of a problem with moving specific data from one server running MSSQL 2000 (A) and another running MSSQL 2008 (B). I'm writing a script according to customer specifications which is to be executed on A, populating tables in B with data. However, I can't seem to get the server link to work. -- Bunch of declarations here EXEC sp_addlinkedserver @server = @ServerName, @srvproduct = @ServerProduct, @provider = @ProviderString, @datasrc = @RemoteHost -- Data migration stuff here EXEC sp_dropserver @ServerName Now if I run the script in its entirety I get an error saying: Msg 7202, Level 11, State 2, Line 55 Could not find server 'remoteServer' in sysservers. Execute sp_addlinkedserver to add the server to sysservers. However, if I higlight only the sp_addlinkedserver-part and execute that, there is no error and I can highlight the rest of the script and run it. What am I missing here? Please help! PS. If backup-restore was an option, I would have done that already.

    Read the article

  • SQL Server Agent 2005 job runs but no output

    - by alimack
    Essentially I have a job which runs in BIDS and as as a stand lone package and while it runs under the SQL Server Agent it doesn't complete properly (no error messages though). The job steps are: 1) Delete all rows from table; 2) Use For each loop to fill up table from Excel spreasheets; 3) Clean up table. I've tried this [MS page][1] (steps 1 & 2), didn't see any need to start changing from Server side security. Also SQLServerCentral.com for [this page][2], no resolution. How can I get error logging or a fix? Note I've reposted this from Server Fault as it's one of those questions that's not pure admin or programming. I have logged in as the proxy account I'm running this under, and the job runs stand alone but complains that the Excel tables are empty?

    Read the article

  • Selecting a sequence NEXTVAL for multiple rows

    - by stringpoet
    I am building a SQL Server job to pull data from SQL Server into an Oracle database through a linked server. The table I need to populate has a sequence for the name ID, which is my primary key. I'm having trouble figuring out a way to do this simply, without some lengthy code. Here's what I have so far for the SELECT portion (some actual names obfuscated): SELECT (SELECT NEXTVAL FROM OPENQUERY(MYSERVER, 'SELECT ORCL.NAME_SEQNO.NEXTVAL FROM DUAL')), psn.BirthDate, psn.FirstName, psn.MiddleName, psn.LastName, c.REGION_CODE FROM Person psn LEFT JOIN MYSERVER..ORCL.COUNTRY c ON c.COUNTRY_CODE = psn.Country MYSERVER is the linked Oracle server, ORCL is obviously the schema. Person is a local table on the SQL Server database where the query is being executed. When I run this query, I get the same exact value for all records for the NEXTVAL. What I need is for it to generate a new value for each returned record. I found this similar question, with its answers, but am unsure how to apply it to my case (if even possible): Query several NEXTVAL from sequence in one satement

    Read the article

  • Data validation between SQL replicated tables

    - by Vikram
    Hi All, I am trying to figure out a way to validate the data in my publisher and subscriber in SQL 2005 replication. I thought of using sp_publication_validation, but it needs db_owner permission and we are not allowed to have it in our company. So I did bit more reading and found out about two other SPs that I think work for me. First one is sp_article_validation, which I plan to run on the publisher. For each article that I call this SP, its gonna give the row count and a checksum. With that info, I intend to call sp_table_validation on the subscriber, passing the row count and checksum from the previous SP, there by validating both tables. What do you guys think? Is this a proven way to validate data in replication? There is very little documentation on these SPs. Here is the link: sp_table_validation - http://msdn.microsoft.com/en-us/library/aa239370(v=sql.80).aspx sp_article_validation - http://msdn.microsoft.com/en-us/library/ms177511(v=SQL.90).aspx Thanks for

    Read the article

  • ????Java EE????WebLogic Server???????????|WebLogic Channel|??????

    - by ???02
    20????????????????????????/???????????Java EE???WebLogic Server????????????????IT(????)?????????????????????????????????????/??????????????????????????????????????????/?????????????????????????2011?9?6???????????????????WebLogic & Java EE????????????????????????????Java EE?WebLogic Server????????????(???)?WebLogic Suite?????/?????????????????? ???Java????????????·?????????????????WebLogic & Java EE?????????????????????????? Fusion Middleware?????????????????Oracle WebLogic Server???????????????????????????WebLogic Server????????????????·?????????????????????? ???WebLogic Server??????????????Standard Edition?????????????Enterprise Edition??????????·??????·????????WebLogic Suite??3??????????????????????????WebLogic Suite??????????????WebLogic Server???????????/??????JRockit Flight Recorder????Mission Control???????·???·??????Oracle Coherence????????????????Java??????JRockit Real Time????????????????Oracle Enterprise Manager??????????????????????????????????????????????????????????·??????·??????????????????·???????? ????????????????????WebLogic Server?????????????????????????????·????????????????·??????2????????2??????????????IT???????????????????????????????????????·????????????????IT??????????????????????????????????·???????????????????IT??????????????????????????????????Java????????·????????????????????????????????????????????????????????? ??????????????????????????????????????????????"???"??????????????WebLogic Suite???????????????????????????????????????????????????????????????(???) ???????WebLogic Server?????????????????WebLogic Suite 11g?????????????????????????????????Oracle Database??????????????????4?????? ???????????????????Java EE 5????????????Java EE 6???????????????Eclipse????????????????FastSwap???????????????????????????????????????????????????????? ?????????????????????????JRockit Flight Recorder????????????·????????????????????????????????????????·??????????????????????????????????? Oracle Database?????????????Oracle Real Application Clusters(RAC)??????????Active GridLink for RAC?????????????????RAC???????????????????????·????????????????????????????·?????????????????????????????????RAC?????????WebLogic Server????????????????????????????????????????????????????????????????????????????????????????? ?????????????????·???????2011????????????????WebLogic Server 10.3.6???2012?????????????????WebLogic Server 12.1.1????????WebLogic Server 10.3.6???????·???????Oracle Exalogic Elastic Cloud???WebLogic Server 12.1.1?Java????????????????????????? WebLogic Server 10.3.6????????????Oracle Virtual Assembly Builder???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????WebLogic Server 10.3.6?????????????????InfiniBand????????Socket Direct Protocol??????????? ??????????·???????WebLogic Server 12.1.1???Java EE 6??????????????????Web?????????????????????Java EE 6?????????WebLogic Server????????????????????? ??????????????????????????????WebLogic Suite????????????????????????????????·??????·????????WebLogic Server????????????Java EE????6????????! ????????Java EE 6????-??????????????????????? Fusion Middleware?????? ???Java???????????????????Java??????????????????? ????????????????????????――?Java EE??????????????????????2000???????EJB??????Java EE?????????????????Web???????????????????Struts???Spring Framework??????????????????????????????????Java EE?"?"???????????????????????????????????????????????????????????????????????????????????XML??????????????????????????Java EE??????????(=??)??????? ??????????????????????????????????J2EE 1.4??????Java EE 5???????"??????"???????????????????????????Java EE 6??????????????"??????"???????????????????????????2009?12???????????????????????????(???) ?????????????????????????Java EE 6????????????????????????????????????????????????4?????? ?????????????Java EE???????????????????????????????????????????web.xml?????????????????Java EE 6??????????????????web.xml??????????????????????????????????????????????????????????????????????????????? ????Java EE????????????????????????????Java EE 6??????Web??????????????????Web????????????Java EE??????????????????????????????????????/????????Web???????????????????????? ????????????????????Java EE???????·??????????JavaServer Faces(JSF) 2.0???????????????????????????????????? JSF 2.0??????????????????·????????XHTML???????????????????????·???????(UI)??????????????JSF 1.2???Java Server Pages(JSP)????????????????????????????????????????JSF 2.0???Facelet??????XHTML?????????????????????????????????? ?????EJB??????????????????????????EJB 3.1?????????EJB???????????????????????????????????????·????????????????Java SE???EJB?????????????????????????? ??????????????????????????????????????????·???????????Java EE 5????????Java EE 6?????????Web??????????????????????·??????????Tomcat??????????????·??????????????(???)???????????????????Web?????????????Tomcat?????????????????????? ???????????????Tomcat???????Java Servlet?JSP?Expression Language?????????????????Struts???????????????Web????????????????????????????????????????Web??????????????????????????????????????????????????????????????Java EE 6????????????????????????????? ?Java EE 6?Web???????????Java EE?????????????????Web????????????????????Java EE 6???????WebLogic Server????????????????????????????????????????Web??????????????????????(???) ?????????????????????????????????????????????????????????Java EE 6?????????????????????Java EE 6???"??????"?????????????JRockit Flight Recorder/Mission Control?????????! ??????????????? Fusion Middleware?????????????????Oracle WebLogic Server 11g?????????-???????WebLogic??????!??????????????WebLogic Server?????????????????????????????????????????????????????????????????????????JRockit Flight Recorder?JRockit Mission Control????????????·??????????????? ????????JRockit Flight Recorder(JFR)??Java??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??JFR????????????????????SLA???????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????JRockit?????????????JRockit Mission Control(JMC)?????JFR??????????JFR????????·???????????????????? JFR?????????????????????????????????????????????????????????????????????????·????????????????????????????????????????·?????????????????????????????????????????????????????4???????????????????????JFR???????????????????????????????????????? ???JMC?Eclipse??????????????????????????????????????????·?????????????????????????????????????Eclipse??????JMC????????????????·???????????????????·?????????????????????????????????????? ??????JMC?Eclipse?????????????????????????????????????????UI????????????????????????????????????????????????????????????????????????????????????????????????: ?????????! ?????????????????JRockit Flight Recorder?????*   *   * ???????WebLogic & Java EE??????????????????Java?WebLogic Server????3??????????????????????????????????·?????????????????????????

    Read the article

  • Drupal 7: One-time user account

    - by Noob
    I'm going to create a survey in Drupal 7 with the webform module, installed on a debian system which may be adapted in every way. The users (personally known, approx. 120) doing that survey will walk into a room and complete the survey in browsers on different computers. After that, they'll leave the room and other persons will enter, complete the survey on the same computers and so on. Each user may enter only one submission. The process needs to be anonymous, i. e. I mustn't have any idea of who did wich submission. My current solution is to generate random one-time-passwords and hand out one password per user (without noting who got which password). Within the survey there will be a password field where the one-time-password is entered. The value is checked by webform to be unique. I'll get the data via csv or Excel and verify the passwords manually in excel by comparing them to the list of valid passwords. The problem is: I don't like the idea of manually generating the password list, copying it to excel and doing a manual check. That's a good idea for one-time-use, but we're going to repeat the survey every once in a while. I'd rather generate one-time-logins (like user0001/fdlkjewf, user0002/dfrefnnr, ...) for each survey, hand them out to the users and let drupal/debian/whatever check whether a submission is valid or not. Do you have any idea how to batch-generate about 120 users with one-time-passwords in Drupal 7 and verify that each user may submit the form only once? Do you even have a better idea how to accomplish the task within the intranet? Thank you for your help.

    Read the article

  • django create user and log them in

    - by Scott Willman
    In a view I'm trying to create a new user and then log them in but result in a new url on success. def create(request): if request.method == "POST": # do user creation # user.save() auth_user = authenticate(username=user.username,password=user.password) if auth_user is not None: login(request, auth_user) return HttpResponseRedirect('/user/account/') return render_to_response('create_form.html') So, how do I maintain the user object using the HttpResponseRedirect or validate the logged in user in an unassociated view?

    Read the article

  • Cloud – the forecast is improving

    - by Rob Farley
    There is a lot of discussion about “the cloud”, and how that affects people’s data stories. Today the discussion enters the realm of T-SQL Tuesday, hosted this month by Jorge Segarra. Over the years, companies have invested a lot in making sure that their data is good, and I mean every aspect of it – the quality of it, the security of it, the performance of it, and more. Experts such as those of us at LobsterPot Solutions have helped these companies with this, and continue to work with clients to make sure that data is a strong part of their business, not an oversight. Whether business intelligence systems are being utilised or not, every business needs to be able to rely on its data, and have the confidence in it. Data should be a foundation upon which a business is built. In the past, data had been stored in paper-based systems. Filing cabinets stored vital information. Today, people have server rooms with storage of various kinds, recognising that filing cabinets don’t necessarily scale particularly well. It’s easy to ‘lose’ data in a filing cabinet, when you have people who need to make sure that the sheets of paper are in the right spot, and that you know how things are stored. Databases help solve that problem, but still the idea of a large filing cabinet continues, it just doesn’t involve paper. If something happens to the physical ‘filing cabinet’, then the problems are larger still. Then the data itself is under threat. Many clients have generators in case the power goes out, redundant cables in case the connectivity dies, and spare servers in other buildings just in case they’re required. But still they’re maintaining filing cabinets. You see, people like filing cabinets. There’s something to be said for having your data ‘close’. Even if the data is not in readable form, living as bits on a disk somewhere, the idea that its home is ‘in the building’ is comforting to many people. They simply don’t want to move their data anywhere else. The cloud offers an alternative to this, and the human element is an obstacle. By leveraging the cloud, companies can have someone else look after their filing cabinet. A lot of people really don’t like the idea of this, partly because the administrators of the data, those people who could potentially log in with escalated rights and see more than they should be allowed to, who need to be trusted to respond if there’s a problem, are now a faceless entity in the cloud. But this doesn’t mean that the cloud is bad – this is simply a concern that some people may have. In new functionality that’s on its way, we see other hybrid mechanisms that mean that people can leverage parts of the cloud with less fear. Companies can use cloud storage to hold their backup data, for example, backups that have been encrypted and are therefore not able to be read by anyone (including administrators) who don’t have the right password. Companies can have a database instance that runs locally, but which has its data files in the cloud, complete with Transparent Data Encryption if needed. There can be a higher level of control, making the change easier to accept. Hybrid options allow people who have had fears (potentially very justifiable) to take a new look at the cloud, and to start embracing some of the benefits of the cloud (such as letting someone else take care of storage, high availability, and more) without losing the feeling of the data being close. @rob_farley

    Read the article

  • SQL Server 2005 Reporting Services (x64) on Windows 2K8 -> CleanCurrentUserName() not found

    - by Steven Pardo
    I have installed SQL Server 2005 three times now on the same box. I cleaned up registry settings, files, you name it. All along I have been trying to install SQL Server 2005 Database and Reporting Services (x64) on a Windows 2008 Server. I have also applied the SP3 patch. Installing and Restarting the Server at every point. I have installed multiple instances (SQLDEV64, SQLQA64, SQLSTAGE64) of the Database and Reporting Services. I started to go through the Reporting Services Configuration manager, installing the Reporting Database along with setting up IIS. When I go test the website I get the following and there lies my question. How can I get around this error? http://localhost/reportserver Reporting Services Error -------------------------------------------------------------------------------- An internal error occurred on the report server. See the error log for more details. (rsInternalError) Method not found: 'Void Microsoft.ReportingServices.Diagnostics.UserUtil.CleanCurrentUserName()'. -------------------------------------------------------------------------------- SQL Server Reporting Services Any help would be greatly appreciated.

    Read the article

  • "Most popular" GROUP BY in LINQ?

    - by tags2k
    Assuming a table of tags like the stackoverflow question tags: TagID (bigint), QuestionID (bigint), Tag (varchar) What is the most efficient way to get the 25 most used tags using LINQ? In SQL, a simple GROUP BY will do: SELECT Tag, COUNT(Tag) FROM Tags GROUP BY Tag I've written some LINQ that works: var groups = from t in DataContext.Tags group t by t.Tag into g select new { Tag = g.Key, Frequency = g.Count() }; return groups.OrderByDescending(g => g.Frequency).Take(25); Like, really? Isn't this mega-verbose? The sad thing is that I'm doing this to save a massive number of queries, as my Tag objects already contain a Frequency property that would otherwise need to check back with the database for every Tag if I actually used the property. So I then parse these anonymous types back into Tag objects: groups.OrderByDescending(g => g.Frequency).Take(25).ToList().ForEach(t => tags.Add(new Tag() { Tag = t.Tag, Frequency = t.Frequency })); I'm a LINQ newbie, and this doesn't seem right. Please show me how it's really done.

    Read the article

  • SQL Server job (stored proc) trace

    - by Jit
    Hi Friends, I need your suggestion on tracing the issue. We are running data load jobs at early morning and loading the data from Excel file into SQL Server 2005 db. When job runs on production server, many times it takes 2 to 3 hours to complete the tasks. We could drill down to one job step which is taking 99% of the total time to finish. While running the job step (stored procs) on staging environment (with the same production database restored) takes 9 to 10 minutes, the same takes hours on production server when it run at early morning as part of job. The production server always stuck up at the very job step. I would like to run trace on the very job step (around 10 stored procs run for each user in while loop within the job step) and collect the info to figure out the issue. What are the ways available in SQL Server 2005 to achieve the same? I want to run the trace only for these SPs and not for certain period time period on production server, as trace give lots of information and it becomes very difficult for me (as not being DBA) to analyze that much of trace information and figure out the issue. So I want to collect info about specific SPs only. Let me know what you suggest. Appreciate your time and help. Thanks.

    Read the article

  • Joins in single-table queries

    - by Rob Farley
    Tables are only metadata. They don’t store data. I’ve written something about this before, but I want to take a viewpoint of this idea around the topic of joins, especially since it’s the topic for T-SQL Tuesday this month. Hosted this time by Sebastian Meine (@sqlity), who has a whole series on joins this month. Good for him – it’s a great topic. In that last post I discussed the fact that we write queries against tables, but that the engine turns it into a plan against indexes. My point wasn’t simply that a table is actually just a Clustered Index (or heap, which I consider just a special type of index), but that data access always happens against indexes – never tables – and we should be thinking about the indexes (specifically the non-clustered ones) when we write our queries. I described the scenario of looking up phone numbers, and how it never really occurs to us that there is a master list of phone numbers, because we think in terms of the useful non-clustered indexes that the phone companies provide us, but anyway – that’s not the point of this post. So a table is metadata. It stores information about the names of columns and their data types. Nullability, default values, constraints, triggers – these are all things that define the table, but the data isn’t stored in the table. The data that a table describes is stored in a heap or clustered index, but it goes further than this. All the useful data is going to live in non-clustered indexes. Remember this. It’s important. Stop thinking about tables, and start thinking about indexes. So let’s think about tables as indexes. This applies even in a world created by someone else, who doesn’t have the best indexes in mind for you. I’m sure you don’t need me to explain Covering Index bit – the fact that if you don’t have sufficient columns “included” in your index, your query plan will either have to do a Lookup, or else it’ll give up using your index and use one that does have everything it needs (even if that means scanning it). If you haven’t seen that before, drop me a line and I’ll run through it with you. Or go and read a post I did a long while ago about the maths involved in that decision. So – what I’m going to tell you is that a Lookup is a join. When I run SELECT CustomerID FROM Sales.SalesOrderHeader WHERE SalesPersonID = 285; against the AdventureWorks2012 get the following plan: I’m sure you can see the join. Don’t look in the query, it’s not there. But you should be able to see the join in the plan. It’s an Inner Join, implemented by a Nested Loop. It’s pulling data in from the Index Seek, and joining that to the results of a Key Lookup. It clearly is – the QO wouldn’t call it that if it wasn’t really one. It behaves exactly like any other Nested Loop (Inner Join) operator, pulling rows from one side and putting a request in from the other. You wouldn’t have a problem accepting it as a join if the query were slightly different, such as SELECT sod.OrderQty FROM Sales.SalesOrderHeader AS soh JOIN Sales.SalesOrderDetail as sod on sod.SalesOrderID = soh.SalesOrderID WHERE soh.SalesPersonID = 285; Amazingly similar, of course. This one is an explicit join, the first example was just as much a join, even thought you didn’t actually ask for one. You need to consider this when you’re thinking about your queries. But it gets more interesting. Consider this query: SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE SalesPersonID = 276 AND CustomerID = 29522; It doesn’t look like there’s a join here either, but look at the plan. That’s not some Lookup in action – that’s a proper Merge Join. The Query Optimizer has worked out that it can get the data it needs by looking in two separate indexes and then doing a Merge Join on the data that it gets. Both indexes used are ordered by the column that’s indexed (one on SalesPersonID, one on CustomerID), and then by the CIX key SalesOrderID. Just like when you seek in the phone book to Farley, the Farleys you have are ordered by FirstName, these seek operations return the data ordered by the next field. This order is SalesOrderID, even though you didn’t explicitly put that column in the index definition. The result is two datasets that are ordered by SalesOrderID, making them very mergeable. Another example is the simple query SELECT CustomerID FROM Sales.SalesOrderHeader WHERE SalesPersonID = 276; This one prefers a Hash Match to a standard lookup even! This isn’t just ordinary index intersection, this is something else again! Just like before, we could imagine it better with two whole tables, but we shouldn’t try to distinguish between joining two tables and joining two indexes. The Query Optimizer can see (using basic maths) that it’s worth doing these particular operations using these two less-than-ideal indexes (because of course, the best indexese would be on both columns – a composite such as (SalesPersonID, CustomerID – and it would have the SalesOrderID column as part of it as the CIX key still). You need to think like this too. Not in terms of excusing single-column indexes like the ones in AdventureWorks2012, but in terms of having a picture about how you’d like your queries to run. If you start to think about what data you need, where it’s coming from, and how it’s going to be used, then you will almost certainly write better queries. …and yes, this would include when you’re dealing with regular joins across multiples, not just against joins within single table queries.

    Read the article

< Previous Page | 155 156 157 158 159 160 161 162 163 164 165 166  | Next Page >