Search Results

Search found 1753 results on 71 pages for 'consistent hashing'.

Page 21/71 | < Previous Page | 17 18 19 20 21 22 23 24 25 26 27 28  | Next Page >

  • SEO and multiple domains to same site

    - by mwb
    I have one website. I have two domain names that I want to point to the same site install. So whether you go to name-one.com or name-two.com you see the exact same site. Now, I can either set up name-two.com to serve 301 redirect header redirecting to name-one.com – or, I can set up name-two.com as a CNAME in the DNS pointing to name-one.com What is the different implications for SEO on this? What is recommended? I would guess it's better for branding to use a 301 redirect, so that visitors will see one consistent url for my site, right? The reason I want the two domains is that I want a version with regional letters ('ö' instead of 'oe' ) in the name.

    Read the article

  • which way should I look at visits by region in Google Analytics?

    - by Drai
    I need to generate a report for only the Americas in Google Analytics. When I create an advanced segment that includes Continent Exactly Matching Americas I get one number, If I create the segment that includes sub-Continent region Includes America I get a slightly different number, And if I look at all visits but choose Demographicslocationand segment by sub-continent region I get yet a 3rd number! (Note: this is because it also includes Caribbean) All are only different by around 1% of traffic. What is the most accurate way to do this, or should I just pick a way and be consistent?

    Read the article

  • Not Just What You Sell but Really How You Sell?

    - by divya.malik
    Sales 2.0 is changing the way customers get influenced and buy the products that they want to purchase. Engaging and listening to your customers and market  regularly is necessary, since they are engaging with other customers like themselves all the time, and online. Creating a consistent customer experience for your customers, across channels is more critical than ever. 2.0 and Social media as a channel need to become a part of your inbound and outbound sales strategy. Oracle has been investing in new capabilities to address the needs of this changing marketplace. Listen to  Mark Woollen, VP of CRM at Oracle discuss these new innovations that are changing the way companies and customer interact today, and the new strategies that will give you the lead in the marketplace. Here is an excerpt from his presentation (, which was featured on SellingPower.com.

    Read the article

  • Generating Wrappers for REST APIs

    - by Kyle
    Would it be feasible to generate wrappers for REST APIs? An earlier question asked about machine readable descriptions of RESTful services addressed how we could write (and then read) API specifications in a standardized way which would lend itself well to generated wrappers. Could a first pass parser generate a decent wrapper that human intervention could fix up? Perhaps the first pass wouldn't be consistent, but would remove a lot of the grunt work and make it easy to flesh out the rest of the API and types. What would need to be considered? What's stopping people from doing this? Has it already been done and my google fu is weak for the day?

    Read the article

  • To mount NAS on a Laptop?

    - by deckoff
    So, I bought a NAS, which I configured successfully in /etc/fstab, on mu Kubuntu 10.10 Thinkpad x40. It works just fine when I am at home. A few days I went out with my laptop and the problem is, that when not at home, both suspend and hibernate functions seem forever to work. I commented out the entry on fstab and the laptop started to work as expected. I played with autofs, but it seems just dies at one moment and I cannot access anything. It works for some time, and then just goes off. Is there any consistent way, to make my laptop access the drive when at home and work OK when away? Probably a script that runs at startup, checks if the mount is there and mounts it if available... or a script that umount the drive at suspend|hibernate and loads it back at startup. Any useful ideas?

    Read the article

  • Trying to re-install ubuntu 11.10on an HP Pavillion G6, screen goes black after the ubuntu logo shows.How do I get it to install normally?

    - by Josh Towers
    Installed Ubuntu 11.1 successfully without my wireless device being recognized. Used sudo apt-get update + upgrade commands to attempt to fix this. Computer crashes after upgrade and now it won't finish re-installing Ubuntu, after it shows the first purple screen with the Ubuntu logo, the screen goes black. Used the Derik's Boot Nuke CD and then attempted re-installment again, and the black screen problem remains consistent, seemingly no matter what I do. It sounds like it's installing but won't let me see anything or go anywhere. heelllppp

    Read the article

  • Goodbye, Estonian Kroon. Hello, euro!

    - by Theresa Hickman
    Happy New Year! As of the stroke of midnight on 1/1/11, Estonia became a member of the Euro zone. Keeping consistent with the #1 theme, they're the first former Soviet bloc country to do so. With a population of only 1.34M (wouldn't it have been ironic if their population was 1.11M?), Estonia is one of the least-populated countries in Europe to join the European Union. Its currency, the Estonian Kroon was converted at its fixed rate of 15.6466 Kroons to the Euro. Some of its neighbors, such as Lithuania and Latvia, also hope to join the Euro zone soon, but who knows now that there is so much turmoil.

    Read the article

  • Leveraging Existing ERP Systems to Support Environmental Accounting and Reporting

    Organizations globally are faced with a complex set of emissions reporting requirements. Driven by country-specific regulatory mandates as well as stakeholder requests for voluntary reporting, companies are under pressure to provide consistent, transparent and accurate collection, measurement and reporting of energy usage and emissions data. In this podcast, you'll year about how the new Oracle Environmental Accounting and Reporting solution extends the capabilities of Oracle E-Business Suite and JD Edwards Financials to enable organizations to track their greenhouse gas emissions and other environmental data against reduction targets, and to obtain accurate, repeatable and verifiable methodologies for greenhouse gas calculation in accordance with global standards and for both voluntary and legislated emissions reporting schemes.

    Read the article

  • Google I/O 2012 - Navigation in Android

    Google I/O 2012 - Navigation in Android Adam Powell, Richard Fulcher An app is useless if people can't find their way around it. Android introduced big navigation-support changes in 3.0 and 4.0. The Action Bar offers a convenient control for Up navigation, the Back key's behavior became more consistent within tasks, and the Recent Tasks UI got an overhaul. In this talk, we discuss how and why we got where we are today, how to think about navigation when designing your app's user experience, and how to write apps that offer effortless navigation in multiple Android versions. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 31 0 ratings Time: 01:01:53 More in Science & Technology

    Read the article

  • Alternatives to voxel-based terrain

    - by Neomex
    Are there any alternatives to voxel based terrains? Such terrain should be fully destructable, allow for arches, overhangs, preserve sharp features where needed and keep consistent topology. Maybe you can explain the problem that makes you ask this question? Voxel based terrain is basically just using a 3D grid of data to store data. There are lots of ways to render that data, but it doesn't get much simpler for storing it. – Byte56 Current isosurface extraction methods aren't most effective/bug-free. Cubical Marching Squares seem to solve most of the issues, however it is a relatively new method and there aren't too many resources about it. (I've found single university paper) Even if we stick to CMS, when we want to add multi-material support, we can either divide surface into multiple meshes, or pass a texture array or texture atlas to shaders, then we are limited to set amount of textures and additionally increase memory-usage alot.

    Read the article

  • Does a person's day-to-day neatness (outside of programming) relate to quality and organization in programming?

    - by jiceo
    Before anyone jumps into any conclusion, I had a discussion with a friend (who's not a programmer at all) about the relationship between a person's neatness habit and the degree of neatness generally shown in works by the same person. This led me to think about this situation: Let's imagine you knew a programmer whose house was very messy. This person's lifestyle is messy by nature. On his desk there are books, papers, STUFF, piled everywhere including on the floor, mixed with dirty clothing, with no obvious organization at all. If you asked him to find a book he hasn't touched for at least a week from the cluster of chaos, he would take at least an hour to do so. How likely is it that he will produce very clean, consistent, and organized code that other people can use? Are there CS legends that are/were notoriously messy in day-to-day habits?

    Read the article

  • Pillar Axiom OpenWorld Highlights

    - by uwes
    During the Storage General Session at Oracle OpenWorld Conference 2012 in San Francisco, the following Axiom-related announcements were made: Oracle Platinum Services for Axiom 600: Extending Oracle's Platinum Services to Axiom 600 as a standalone product –  the same level of service and support you get with Exadata – 24/7 fault monitoring, dedicated response and escalation management to meet enterprise-grade SLA’s, patch planning and management. Oracle Enterprise Manager Axiom Plug-in: Allowing DBA's to manage, maintain, monitor and provision the Axiom 600 storage system from Oracle EM. Oracle Virtual Machine Axiom Plug-in: Allowing Oracle VM and System Administrators to manage, maintain, monitor and provision the Axiom 600 storage system from Oracle VM using Storage Connect. Oracle Axiom Data Protection Manager 3.1: Leveraging Axiom's Copy Services, System Administrators can automatically create Application Consistent Clones of critical Windows and Oracle DataBase environments for quick recovery. For More Information Go To: Oracle.com Pillar Axiom Page Oracle Technology Network SAN Page

    Read the article

  • Funnel Visualisation not showing drop out in steps

    - by cjk
    I have a site where users will follow this path (hopefully): mysite.com/entity mysite.com/entity/pay mysite.com/entity/pay/details mysite.com/entity/pay/confirmation mysite.com/entity/pay/payment mysite.com/entity/paymentsuccessful?lotsofuniquestuff The entity section could be any one of a multitude of entries, but once the user is on a journey it will stay consistent. I have a goal set up for this as a regular expression, with the match being .*PaymentSuccessful.*. This detects goal successes perfectly (as checked with data stored by the site directly). I have set the following steps within the goal: /[a-zA-Z0-9]+/pay /[a-zA-Z0-9]+/pay/details /[a-zA-Z0-9]+/pay/confirmation /[a-zA-Z0-9]+/pay/payment My funnel detects entry into the funnel (e.g. 47 users) of which say 10 complete the funnel. However, all drop offs are after the first step, even though the exist page is listed as the second step! My data also suggests users are getting further in the funnel before failing to reach the goal. What have I done wrong?

    Read the article

  • Stores Still Matter In The World Of E-Commerce

    - by Michael Hylton
    You may think that more and more consumers are moving their purchasing to the Web or mobile device.  However, according The NPD Group, Inc., a leading market research company, 15-20 percent of consumers in 2011 checked out products in stores before buying online, or called “showrooming”, for product categories like stand mixers, electric knives, sewing machines, and some floor cleaners. Other categories like power tools, hairsetters, and robotic vacuums are now beginning to show signs of the “showrooming” trend as well. It is doubly important to present a consistent, personalized, and relevant shopping experience for your customers, no matter whether they interact with you in-person in your store, with your sales agents or call center agents, over the Web, or using a mobile device.  Your goal is to make that experience across touchpoints as seamless as possible.

    Read the article

  • Stores Still Matter In The World Of E-Commerce

    - by Michael Hylton
    You may think that more and more consumers are moving their purchasing to the Web or mobile device.  However, according The NPD Group, Inc., a leading market research company, 15-20 percent of consumers in 2011 checked out products in stores before buying online, or called “showrooming”, for product categories like stand mixers, electric knives, sewing machines, and some floor cleaners. Other categories like power tools, hairsetters, and robotic vacuums are now beginning to show signs of the “showrooming” trend as well. It is doubly important to present a consistent, personalized, and relevant shopping experience for your customers, no matter whether they interact with you in-person in your store, with your sales agents or call center agents, over the Web, or using a mobile device.  Your goal is to make that experience across touchpoints as seamless as possible.

    Read the article

  • ASP.NET 3.5 Search Function Basic Development Concepts

    Adding a search web form to your ASP.NET website is very helpful for your users when they want to search related content. For example if you are going to display a very large table it would be much more efficient for users to search related content and display it back to the browser. This tutorial will show you how to develop a search function in ASP.NET 3.5 which you can add to your website.... AutoCAD LT? 2011 Trial Try The New AutoCAD LT? And Benefit From Consistent 2D Drafting Focus.

    Read the article

  • Actinic and Google Analytics: does it mess with my stats?

    - by tjcss
    My fathers website is built using Actinic - not by me but by a local company - and since he went with them some years ago his traffic never went down, but has stayed more or less consistent which is fine. My question is this; does using actinic somehow confuse analytics? As it shows that 99% of all visitors come "direct", as in, not by organic search. Previous to using Actinic he would get 70 to 85% of new hits exclusively from organic search terms. So I'm wondering if Actinic somehow messes with these new hits and redirects them to a "home" page.. Not sure exactly what I mean but this change in stats is concerning and I'm struggling to find an explanation.

    Read the article

  • How to automount usb drive reliably without fstab

    - by user103279
    Hi I need a way to mount a usb drive without using fstab. I Cannot use fstab because the drive is not connected to my computer at boot. This causes an issue during any one off reboots because start up hang waiting for this device until a keyboard intervention to skip it. I cannot use my current script with just does mount /dev/sde1 /media/Backup because sometimes it changes to sdf. Consider this a server install. I can't use tools at the user or GUI level. I suppose the sum of my question is how to manually mount a usb drive from the commandline considering the reliability of the /dev/sd value isn't consistent. Thanks,

    Read the article

  • Monday at Oracle OpenWorld 2012 - Must See Session: “Using the Right Tools, Techniques, and Technologies for Integration Projects”

    - by Lionel Dubreuil
    Don’t miss this “CON8669 - Using the Right Tools, Techniques, and Technologies for Integration Projects“ session with Timothy Hall - Sr. Director, Oracle: Date: Monday, Oct 1, Time: 3:15 PM - 4:15 PM Location: Moscone South - 308 Every integration project brings its own unique set of challenges. There are many tools and techniques to choose from. How do you ensure that you have a means of consistently and repeatedly making decisions about which tools, techniques, and technologies are used? In working with many customers around the globe, Oracle has developed a set of criteria to help evaluate a variety of common integration questions. This session explores these criteria and how they have been further organized into decision trees that offer a repeatable means for ensuring that project teams are given the same guidance from project to project. Using these techniques, the presentation shows how you can reduce risk and speed productivity for your projects Objectives for this session are to: Discuss common questions that arise at the start of integration projects Review various decision criteria and approaches for getting to a consistent set of answers Explore how these techniques can be used to reduce risk and speed productivity

    Read the article

  • Monday at Oracle OpenWorld 2012 - Must See Session: “Using the Right Tools, Techniques, and Technologies for Integration Projects”

    - by Lionel Dubreuil
    Don’t miss this “CON8669 - Using the Right Tools, Techniques, and Technologies for Integration Projects“ session with Timothy Hall - Sr. Director, Oracle: Date: Monday, Oct 1, Time: 3:15 PM - 4:15 PM Location: Moscone South - 308 Every integration project brings its own unique set of challenges. There are many tools and techniques to choose from. How do you ensure that you have a means of consistently and repeatedly making decisions about which tools, techniques, and technologies are used? In working with many customers around the globe, Oracle has developed a set of criteria to help evaluate a variety of common integration questions. This session explores these criteria and how they have been further organized into decision trees that offer a repeatable means for ensuring that project teams are given the same guidance from project to project. Using these techniques, the presentation shows how you can reduce risk and speed productivity for your projects Objectives for this session are to: Discuss common questions that arise at the start of integration projects Review various decision criteria and approaches for getting to a consistent set of answers Explore how these techniques can be used to reduce risk and speed productivity

    Read the article

  • Find RARs with duplicate content

    - by Scott McClenning
    I need a utility to find RAR files that contain duplicate data (i.e. files within the RAR that hash the same, but could have different names). I can open the RARs and see the CRCs are the same, but I was hoping for a more automated process that would work in bulk (hundreds of files). Hashing the overall RAR won't help because the file contained within could have different names, or the archive could be compressed at different levels. If needed, a utility that would extract the contents of the RARs and then compare would work, but is not preferred. I would prefer a free utility for Windows, but a pay utility or a utility for Linux would be acceptable.

    Read the article

  • How to prevent carriage return being copied to clipboard in Powershell?

    - by user610209
    I have a powershell script that is hashing the MAC address, then posting it into a file and a clipboard. $hash = [System.BitConverter]::ToString($md5.ComputeHash($utf8.GetBytes($MAC))) $hash | clip $hash | Out-File $Env:USERPROFILE\Desktop\this.txt The issue I am having is that a carriage return is being exported to the clipboard. I don't want that. Is there a way of stopping that happening? Additional info - When I paste the text that is on the clipboard into a hex editor I see 0D0A The clipboard function would be fine if I could just loose that some how? Thanks

    Read the article

  • Using LDAP/Active Directory with PIN based authentication

    - by nishantjr
    We'd like to integrate our service with LDAP, but because of hardware constraints, we're only allow 4 digit user ids and passwords. What would be the best practice for performing such an authetication? We've considered adding User ID and PIN attributes to the LDAP user schema, but we're not sure how happy people would be with modifying their schema to interact with our service. The PIN attribute would have to have the same support that native user passwords have. (hashing and salting etc.) UPDATE Another consideration is how ldap_bind works with this scenario. How do we get it to use an alternate authentication method? Can this even be done without affecting other services that use the same LDAP server?

    Read the article

  • Heaps of Trouble?

    - by Paul White NZ
    If you’re not already a regular reader of Brad Schulz’s blog, you’re missing out on some great material.  In his latest entry, he is tasked with optimizing a query run against tables that have no indexes at all.  The problem is, predictably, that performance is not very good.  The catch is that we are not allowed to create any indexes (or even new statistics) as part of our optimization efforts. In this post, I’m going to look at the problem from a slightly different angle, and present an alternative solution to the one Brad found.  Inevitably, there’s going to be some overlap between our entries, and while you don’t necessarily need to read Brad’s post before this one, I do strongly recommend that you read it at some stage; he covers some important points that I won’t cover again here. The Example We’ll use data from the AdventureWorks database, copied to temporary unindexed tables.  A script to create these structures is shown below: CREATE TABLE #Custs ( CustomerID INTEGER NOT NULL, TerritoryID INTEGER NULL, CustomerType NCHAR(1) COLLATE SQL_Latin1_General_CP1_CI_AI NOT NULL, ); GO CREATE TABLE #Prods ( ProductMainID INTEGER NOT NULL, ProductSubID INTEGER NOT NULL, ProductSubSubID INTEGER NOT NULL, Name NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AI NOT NULL, ); GO CREATE TABLE #OrdHeader ( SalesOrderID INTEGER NOT NULL, OrderDate DATETIME NOT NULL, SalesOrderNumber NVARCHAR(25) COLLATE SQL_Latin1_General_CP1_CI_AI NOT NULL, CustomerID INTEGER NOT NULL, ); GO CREATE TABLE #OrdDetail ( SalesOrderID INTEGER NOT NULL, OrderQty SMALLINT NOT NULL, LineTotal NUMERIC(38,6) NOT NULL, ProductMainID INTEGER NOT NULL, ProductSubID INTEGER NOT NULL, ProductSubSubID INTEGER NOT NULL, ); GO INSERT #Custs ( CustomerID, TerritoryID, CustomerType ) SELECT C.CustomerID, C.TerritoryID, C.CustomerType FROM AdventureWorks.Sales.Customer C WITH (TABLOCK); GO INSERT #Prods ( ProductMainID, ProductSubID, ProductSubSubID, Name ) SELECT P.ProductID, P.ProductID, P.ProductID, P.Name FROM AdventureWorks.Production.Product P WITH (TABLOCK); GO INSERT #OrdHeader ( SalesOrderID, OrderDate, SalesOrderNumber, CustomerID ) SELECT H.SalesOrderID, H.OrderDate, H.SalesOrderNumber, H.CustomerID FROM AdventureWorks.Sales.SalesOrderHeader H WITH (TABLOCK); GO INSERT #OrdDetail ( SalesOrderID, OrderQty, LineTotal, ProductMainID, ProductSubID, ProductSubSubID ) SELECT D.SalesOrderID, D.OrderQty, D.LineTotal, D.ProductID, D.ProductID, D.ProductID FROM AdventureWorks.Sales.SalesOrderDetail D WITH (TABLOCK); The query itself is a simple join of the four tables: SELECT P.ProductMainID AS PID, P.Name, D.OrderQty, H.SalesOrderNumber, H.OrderDate, C.TerritoryID FROM #Prods P JOIN #OrdDetail D ON P.ProductMainID = D.ProductMainID AND P.ProductSubID = D.ProductSubID AND P.ProductSubSubID = D.ProductSubSubID JOIN #OrdHeader H ON D.SalesOrderID = H.SalesOrderID JOIN #Custs C ON H.CustomerID = C.CustomerID ORDER BY P.ProductMainID ASC OPTION (RECOMPILE, MAXDOP 1); Remember that these tables have no indexes at all, and only the single-column sampled statistics SQL Server automatically creates (assuming default settings).  The estimated query plan produced for the test query looks like this (click to enlarge): The Problem The problem here is one of cardinality estimation – the number of rows SQL Server expects to find at each step of the plan.  The lack of indexes and useful statistical information means that SQL Server does not have the information it needs to make a good estimate.  Every join in the plan shown above estimates that it will produce just a single row as output.  Brad covers the factors that lead to the low estimates in his post. In reality, the join between the #Prods and #OrdDetail tables will produce 121,317 rows.  It should not surprise you that this has rather dire consequences for the remainder of the query plan.  In particular, it makes a nonsense of the optimizer’s decision to use Nested Loops to join to the two remaining tables.  Instead of scanning the #OrdHeader and #Custs tables once (as it expected), it has to perform 121,317 full scans of each.  The query takes somewhere in the region of twenty minutes to run to completion on my development machine. A Solution At this point, you may be thinking the same thing I was: if we really are stuck with no indexes, the best we can do is to use hash joins everywhere. We can force the exclusive use of hash joins in several ways, the two most common being join and query hints.  A join hint means writing the query using the INNER HASH JOIN syntax; using a query hint involves adding OPTION (HASH JOIN) at the bottom of the query.  The difference is that using join hints also forces the order of the join, whereas the query hint gives the optimizer freedom to reorder the joins at its discretion. Adding the OPTION (HASH JOIN) hint results in this estimated plan: That produces the correct output in around seven seconds, which is quite an improvement!  As a purely practical matter, and given the rigid rules of the environment we find ourselves in, we might leave things there.  (We can improve the hashing solution a bit – I’ll come back to that later on). Faster Nested Loops It might surprise you to hear that we can beat the performance of the hash join solution shown above using nested loops joins exclusively, and without breaking the rules we have been set. The key to this part is to realize that a condition like (A = B) can be expressed as (A <= B) AND (A >= B).  Armed with this tremendous new insight, we can rewrite the join predicates like so: SELECT P.ProductMainID AS PID, P.Name, D.OrderQty, H.SalesOrderNumber, H.OrderDate, C.TerritoryID FROM #OrdDetail D JOIN #OrdHeader H ON D.SalesOrderID >= H.SalesOrderID AND D.SalesOrderID <= H.SalesOrderID JOIN #Custs C ON H.CustomerID >= C.CustomerID AND H.CustomerID <= C.CustomerID JOIN #Prods P ON P.ProductMainID >= D.ProductMainID AND P.ProductMainID <= D.ProductMainID AND P.ProductSubID = D.ProductSubID AND P.ProductSubSubID = D.ProductSubSubID ORDER BY D.ProductMainID OPTION (RECOMPILE, LOOP JOIN, MAXDOP 1, FORCE ORDER); I’ve also added LOOP JOIN and FORCE ORDER query hints to ensure that only nested loops joins are used, and that the tables are joined in the order they appear.  The new estimated execution plan is: This new query runs in under 2 seconds. Why Is It Faster? The main reason for the improvement is the appearance of the eager Index Spools, which are also known as index-on-the-fly spools.  If you read my Inside The Optimiser series you might be interested to know that the rule responsible is called JoinToIndexOnTheFly. An eager index spool consumes all rows from the table it sits above, and builds a index suitable for the join to seek on.  Taking the index spool above the #Custs table as an example, it reads all the CustomerID and TerritoryID values with a single scan of the table, and builds an index keyed on CustomerID.  The term ‘eager’ means that the spool consumes all of its input rows when it starts up.  The index is built in a work table in tempdb, has no associated statistics, and only exists until the query finishes executing. The result is that each unindexed table is only scanned once, and just for the columns necessary to build the temporary index.  From that point on, every execution of the inner side of the join is answered by a seek on the temporary index – not the base table. A second optimization is that the sort on ProductMainID (required by the ORDER BY clause) is performed early, on just the rows coming from the #OrdDetail table.  The optimizer has a good estimate for the number of rows it needs to sort at that stage – it is just the cardinality of the table itself.  The accuracy of the estimate there is important because it helps determine the memory grant given to the sort operation.  Nested loops join preserves the order of rows on its outer input, so sorting early is safe.  (Hash joins do not preserve order in this way, of course). The extra lazy spool on the #Prods branch is a further optimization that avoids executing the seek on the temporary index if the value being joined (the ‘outer reference’) hasn’t changed from the last row received on the outer input.  It takes advantage of the fact that rows are still sorted on ProductMainID, so if duplicates exist, they will arrive at the join operator one after the other. The optimizer is quite conservative about introducing index spools into a plan, because creating and dropping a temporary index is a relatively expensive operation.  It’s presence in a plan is often an indication that a useful index is missing. I want to stress that I rewrote the query in this way primarily as an educational exercise – I can’t imagine having to do something so horrible to a production system. Improving the Hash Join I promised I would return to the solution that uses hash joins.  You might be puzzled that SQL Server can create three new indexes (and perform all those nested loops iterations) faster than it can perform three hash joins.  The answer, again, is down to the poor information available to the optimizer.  Let’s look at the hash join plan again: Two of the hash joins have single-row estimates on their build inputs.  SQL Server fixes the amount of memory available for the hash table based on this cardinality estimate, so at run time the hash join very quickly runs out of memory. This results in the join spilling hash buckets to disk, and any rows from the probe input that hash to the spilled buckets also get written to disk.  The join process then continues, and may again run out of memory.  This is a recursive process, which may eventually result in SQL Server resorting to a bailout join algorithm, which is guaranteed to complete eventually, but may be very slow.  The data sizes in the example tables are not large enough to force a hash bailout, but it does result in multiple levels of hash recursion.  You can see this for yourself by tracing the Hash Warning event using the Profiler tool. The final sort in the plan also suffers from a similar problem: it receives very little memory and has to perform multiple sort passes, saving intermediate runs to disk (the Sort Warnings Profiler event can be used to confirm this).  Notice also that because hash joins don’t preserve sort order, the sort cannot be pushed down the plan toward the #OrdDetail table, as in the nested loops plan. Ok, so now we understand the problems, what can we do to fix it?  We can address the hash spilling by forcing a different order for the joins: SELECT P.ProductMainID AS PID, P.Name, D.OrderQty, H.SalesOrderNumber, H.OrderDate, C.TerritoryID FROM #Prods P JOIN #Custs C JOIN #OrdHeader H ON H.CustomerID = C.CustomerID JOIN #OrdDetail D ON D.SalesOrderID = H.SalesOrderID ON P.ProductMainID = D.ProductMainID AND P.ProductSubID = D.ProductSubID AND P.ProductSubSubID = D.ProductSubSubID ORDER BY D.ProductMainID OPTION (MAXDOP 1, HASH JOIN, FORCE ORDER); With this plan, each of the inputs to the hash joins has a good estimate, and no hash recursion occurs.  The final sort still suffers from the one-row estimate problem, and we get a single-pass sort warning as it writes rows to disk.  Even so, the query runs to completion in three or four seconds.  That’s around half the time of the previous hashing solution, but still not as fast as the nested loops trickery. Final Thoughts SQL Server’s optimizer makes cost-based decisions, so it is vital to provide it with accurate information.  We can’t really blame the performance problems highlighted here on anything other than the decision to use completely unindexed tables, and not to allow the creation of additional statistics. I should probably stress that the nested loops solution shown above is not one I would normally contemplate in the real world.  It’s there primarily for its educational and entertainment value.  I might perhaps use it to demonstrate to the sceptical that SQL Server itself is crying out for an index. Be sure to read Brad’s original post for more details.  My grateful thanks to him for granting permission to reuse some of his material. Paul White Email: [email protected] Twitter: @PaulWhiteNZ

    Read the article

  • Nervous about the "real" world

    - by Randy
    I am currently majoring in Computer Science and minoring in mathematics (the minor is embedded in the major). The program has a strong C++ curriculum. We have done some UNIX and assembly language (not fun) and there is C and Java on the way in future classes that I must take. The program I am in did not use the STL, but rather a STL-ish design that was created from the ground up for the program. From what I have read on, the STL and what I have taken are very similar but what I used seemed more user friendly. Some of the programs that I had to write in C++ for assignments include: a password server that utilized hashing of the passwords for security purposes, a router simulator that used a hash table and maps, a maze solver that used depth first search, a tree traveler program that traversed a tree using levelorder, postorder, inorder, selection sort, insertion sort, bit sort, radix sort, merge sort, heap sort, quick sort, topological sort, stacks, queues, priority queues, and my least favorite, red-black trees. All of this was done in three semesters which was just enough time to code them up and turn them in. That being said, if I was told to use a stack to convert an equation to infix notation or something, I would be lost for a few hours. My main concern in writing this is when I graduate and land an interview, what are some of the questions posed to assess my skills? What are some of the most important areas of computer science that are prevalent in the field? I am currently trying to get some ideas of programs I can write in C++ that interest and challenge me to keep learning the language. A sodoku solver came to mind but am lost as to where to start. I apologize for the rant, but I'm just a wee bit nervous about the future. Any tips are appreciated.

    Read the article

< Previous Page | 17 18 19 20 21 22 23 24 25 26 27 28  | Next Page >