Search Results

Search found 6033 results on 242 pages for 'partition magic'.

Page 71/242 | < Previous Page | 67 68 69 70 71 72 73 74 75 76 77 78  | Next Page >

  • Mount external HD ubuntu 12.10

    - by Luigi Tiburzi
    Although it's an abundantly treated matter, I'm unable to find an answer valid for my needs. I had a 12.04 installation of ubuntu and I decided to install the 12.10. I copied (using GParted) the partition where my system was to an external hd where there is a windows partition. Then I installed the newest ubuntu version and now I want to take back some files (for example my .emacs) from that partition but when I try to mount it, it is not found as sdb and if I mount it from /dev/usb/hddev0 I don't get any output, only a blinking cursor, no errors, no output. I even tried to mount it as an ntfs disk but the result was the same. It's like the hd cannot be detected. So how can I access data to that disk? Could I get them from GParted terminal instead of Ubuntu one? Thanks

    Read the article

  • UILabel to render partial character using clip

    - by magic-c0d3r
    I want a UILabel to render a partial character by setting the lineBreakMode to clip. But it is clipping the entire character. Is there a different way to clip a word so that only partial character is displayed? Lets say I have a string like: "Hello Word" and that string is in a myLabel with a width that only fits the 5 characters and part of the "W" I want it still to render part of the "W" and not drop it from the render.

    Read the article

  • How to overwrite Ubuntu with Windows 7?

    - by Will Cowled
    So I have a Windows DVD and it works. But when it gets to the part when it says "Upgrade" or "Custom" I click on custom and at the bottom it says cannot install over it because Windows 7 can only be installed on an NTFS drive? I know that Ubuntu formatted my partitions into one big on that's an ext4. What can I do? I know that I can maybe create a 30-50 GB partition that's an ntfs then when I go into windows I can format the Ubuntu one and combine them but I don't know how to make a partition much less make a big partition in the "GParted" program? So any ideas would be very helpful. I know how to do anything with a hard drive using the default program that comes with Windows 7 but I feel like a mouse in a maze when I open GParted.

    Read the article

  • Unable to mount location, Can't mount file

    - by user116008
    I'm a new user to Ubuntu and I have a problem: I had Windows XP in my computer and I had two partitions: C (for system data) and D(for my personal stuff), then, during the Ubuntu installation I chose the Advanced Settings and formated C partition and left D partition intact, went back and chose Install Ubuntu and replace Windows and it installed fine. The problem is that now I open Nautilus and go to Computer, in there it shows my D partition, 640 Hard Disk, but when I try to mount it displays me a message: "Unable to mount location. Can't mount file". I ask you to explain me step-by-step what I need to do because I'm not an advanced user. My computer specs: 2 GiB RAM, Proccesor Pentium(R) Dual-Core CPU E5400 @ 2.70GHz × 2, Graphics Unknow (It's Nvidia GeForce 220 {1GB} or something), OS type 32-bit, Disk 628.0 GB P.S.: My HDD is internal, I'm not using external Hard Drives. Thank You!!! Mike

    Read the article

  • Swap File, Mount point, GRUB2

    - by Mike Green
    Windows 7 with 1gb RAM Hi. I am installing Ubuntu 12 onto a 20gb ext3 partition. I have 100gb free disk space. The install asked me to choose a swap space. Do I have to allocate another partition for the swap space, and if so, what size should it be? I installed without allocating a swap space. Can I allocate a swap space after the install? The install asked me for a mount point. I chose /. Is this okay? I also want to ensure that GRUB2 will be installed within the UBUNTU partition. Is there an option for this on the install? (I will use EasyBCD to select Windows7 or UBUNTU.) Thanks for your help, M...

    Read the article

  • Removing a UIView from its superView and expanding its frame to full screen

    - by Magic Bullet Dave
    I have an object that is a subclass of UIView that can be added to a view hierarchy as a subView. I want to be able to remove the UIView from its superView and add it as a subView of the main window and then expand to full screen. Something along the lines of: // Remove from superView and add to mainWindow [self retain]; [self removeFromSuperView]; [self addSubView:mainWindow]; // Animate to full screen [UIView beginAnimations:@"expandToFullScreen" context:nil]; [UIView setAnimationDuration:1.0]; self.frame = [[UIScreen mainScreen] applicationFrame]; [UIView commitAnimations]; [self release]; Firstly am I on the right lines? Secondly, is there an easily way for the object to get a pointer to the mainWindow? Thanks Dave

    Read the article

  • Why do I get a 403 error when accessing my apache server?

    - by nishan
    Im running Ubuntu 12.04 LTS on a system with 2 GB RAM and a 500 GB HDD. My hard drive has 4 partitions: Partition 1 = 40 gb Windows (NTFS, lable = win32) Partition 2 = 320 gb Windows (FAT label = common) Partition 3 = 40 gb Ubuntu (EXT4) I installed apached2. Then, to change its default www directory, I ran gksu gedit /etc/apache2/sites-enabled/000-default and, in the editor, changed the location to /media/common/www. After that I ran these commands in a terminal: chmod 777 /media/common/www chmod 777 /media/common/www/*.* After that I ran: firefox 127.0.0.1/index.php It said: Forbidden You don't have permission to access / on this server. Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 80 Before my changes it was working fine. How can I run my websites?

    Read the article

  • No dual boot menu

    - by Christian Galo
    I formatted all of my disk and installed Ubuntu on my computer. I immediately partitioned, from an Ubuntu live CD, my hard drive, creating an NTFS partition for for Windows. After successfully doing so, I went on to install windows 8.1. After I installed Windows 8 in the new partition and turned off my PC and turned it on again the option to chose which Operating system I wanted to use didn't appear, loading Windows like if Ubuntu didn't exist. How can I have the option to chose which operating system I want to run or at least from which partition to boot from when I start my computer? EVERYTHING IS OKAY WITH MY OPERATING SYSTEM The only thing I need is for ubuntu to appear as an option on the boot menus

    Read the article

  • ubuntu is not booting, after dual boot installation with windows 7

    - by Kranthi
    Recently i bought a lenovo u410 ultrabook. It has given along with windows 7 and 4 primary partitions. So to install ubuntu 12.04 i removed one of the primary partition and made it as extended partition. In that extended partition, i allocated memory for the swap and root (/) directory and then installed the ubuntu. After that by using EasyBCD tool, added ubuntu to the boot menu in grub2. So when i try to boot into ubuntu it is showing grub prompt only. From there how can i boot into ubuntu. Thanks in advance

    Read the article

  • Where to install bootloader when installing Ubuntu as secondary OS?

    - by HelpNeeder
    I'm trying to install Ubuntu as secondary OS on my laptop. I have Windows 8 already installed on my laptop. Now, I know how to run Ubuntu from USB drive, I created addition partition and formatted it to EXT4. So I'm ready to install. Now, 'Device for boot loader installation:' displays: /dev/sta ATA HITACHI (750 GB) /dev/sta1 Windows 8 (loader) /dev/sta2 /dev/sta5 /dev/sta6 Ubuntu 12.04 (12.04) /dev/stb I tries choosing Ubuntu 12.04 partition but it doesn't even let me to pick which OS to install and goes straight to Windows 8. Which partition I must choose to be able to pick which OS to boot from? Preferably, set up so Windows 8 will be at first place, and Ubuntu on second. Any ideas? I don't want to mess up anything if I pick something wrong.

    Read the article

  • Setting up lvm with HDD and SSD

    - by stonegrizzly
    My current hard drive is just about full and rather than just toss it and get a new one (since it works fine), I want to get a new drive and set them both up using lvm. While I'm at it, I also want to get an SSD to install the OS and applications on. This is my plan: Put / on the SSD (one partition) Put /tmp on a ram disk Put /var on a partition on my new drive Put /home on the rest of the new drive and my current drive using lvm. My goals are: Speed up boot time and application launch Minimize unnecessary writes to the SSD Never have to worry about which disk/partition to store my files on. I want the OS & lvm to take care of that Does this make sense? I'm fairly experienced with Ubuntu but I've never dealt with lvm before.

    Read the article

  • How to grant standard users access to disk partitions and flash storage?

    - by JK04
    I have a partition that I need standard users (not administrators)to have read/write access to. However, this partition does not even appear to them as it does to me as an administrator. How can I make it so that standard users can read/write to this partition? It would be nice if they could have the ability to mount it if needed. I have the same problem with removable media - if I have a flash card in the computer, the standard users cannot see this storage media.

    Read the article

  • Can I upgrade Unity

    - by user208455
    Since the bug described here I am moving LTS distros only, however the current LTS is 12.04, and I`ve seen how ubuntu 13.10 looks like, I know that the unity interface is a WOP but, I wanna know is there any possible way to upgrade unity in 12.04? and btw, after that wipeout ,from the post I was reffering to, that sam stupid (to be polite) thing did windows xp, but now I have shortenned the 500GB ntfs partition to 100 GB and added a 100GB ubuntu partition (for /) and a 200+ GB partition for /home and installed ubuntu 12.04 like that (in "something else"). And after a few minor grub issues everything works perfectly, just like it should be

    Read the article

  • How large should I make root, home, and swap partitions?

    - by starcorn
    Hello, I have a laptop with win7 installed. I have now made a 60gb partition which I want to install ubuntu into. The question I have, before I do the installation, is how large each of the root, swap, and home partition should be? I have read some place that root could be as small as 8GB, but isn't that too small? Since I guess beside ubuntu all the softwares installed will reside there as well? And I think I'm going to set my swap to be 2GB large. My main concern is how large should the root partition should be. I'm mainly going to use ubuntu for programming and browse the web.

    Read the article

  • How do I move (copy) my entire Ubuntu system to a different hard disk?

    - by boywithaxe
    The HDD I have my Ubuntu installed is about to fail. I would rather not lose 3 years worth of data, customisation and apps. I am looking for a way to move the complete system (SWAP included, because I'm not sure if I can relink the system to a new SWAP partition) to another HDD. But not the complete HDD< only the partition containing Ubuntu, to a partition on a different HDD. Basically I'd like to do what I've been able to do with Norton Ghost for my Windows install. I thought about using Clonezilla but I think I would have issues with GRUB (Especially trying to boot from a different UUID than what is in the conf file). do you know of any way this could be done? PS, my home directory is encrypted but that's not really an issue, because I can work around that. EDIT: changed the explanation to make it clearer

    Read the article

  • Is it possible to boot without mounting /home?

    - by Exeleration-G
    I want to backup my /home partition on /dev/sda6 using partclone, a command line utility. To do so, I first have to unmount the partition that I want to backup. Most of the time, this is easy, but /home is used by so many processes that it can't be unmounted without first killing all those processes. So, the thing I'm looking for is a way to boot Ubuntu, without mounting /home, so I can back up the not-mounted /dev/sda6 partition. Is that possible? To be clear, it would be nice if this special boot could be 'one-time-only'. So I'm not looking for ways to change /etc/fstab in such way that /dev/sda6 won't be mounted. That's because that would require me to change /etc/fstab twice each time just to make a backup. I'm aware of the fact that there are other backup solutions available, such as deja-dup. I'd like to use partclone, though.

    Read the article

  • Rejoining two partitions

    - by Alex
    I was courious about Ubuntu so I decided I would give it a chance, therefore I installed it on a parition on my harddrive. Now a couple of months later I haven't used windows once so i decided to go with ubuntu only. I deleted my windows partition with GParted and thought that it was all good. BUT the now formated diskspace that used to be home to windows is now only a formated partition. How do I connect it to the partition where my ubuntu installation lays iow go back to having a non parted hard drive?

    Read the article

  • Need Help With Fixing GRUB Dualboot Windows7 and Ubuntu

    - by cr8ivecodesmith
    I have a running Windows 7 and installed Precise along with it just this afternoon. I was doing a manual partition configuration. On the part where I get to set what partition to install the bootloader/MBR I chose the Windows partition. Now every time I choose Windows 7 from GRUB, it just reverts back to the GRUB menu. I've been reading around the web as I type this and found this tool 'Bootinfo' to let you see my configuration. Here's the pastebin: Boot Info Any help would do. Thanks!

    Read the article

  • Dual Boot not recognizing new hard drive

    - by Grove
    I am a complete Linux newb..which will become obvious shortly. The story: I wanted to dual boot with Ubuntu. I already had windows on 1 hard drive (320gb), and I wanted Ubuntu on a 2nd hard drive (2tb). I setup the partitions using the "Something else" option - I left the first hard drive alone, and put a swap and a ext4 partition on the 2nd hard drive. When it asked me where the bootable device was, I put the first hard drive. The problem: Now that Ubuntu is installed and grub lets me pick which os to boot to, I boot to ubuntu JUST FINE. BUT when I go to the home folder and look at devices, the only drive showing is the 320 gb/old hard drive that windows was installed on. I can not see the 2 TB hard drive anywhere. This is strange because I setup the Ubuntu partition to be the 2 TB hard drive and I thought I installed ubunto on that partition. Thank you for your time and patience :)

    Read the article

  • Dual boot w/ windows 7

    - by Aduff
    So my PC had windows XP and Win 7 on it and I went into the XP partition and installed Ubuntu 12.10 over it being sure to use 90% of the XP partition for the / mount and 10% for the swap. It installed but when I boot the computer it doesn't give me the option of choosing between 7 or Ubuntu, just booting right to the Linux distro. Should I have installed it in 7 over the XP partition? I can see the drive in Ubuntu that contains all the 7 files. How can I recover my 7 access?

    Read the article

  • Perl parsing ps fwaux output

    - by Magic Hat
    I am trying to figure out children processes of a given parent from ps fwaux (there may very well be a better way to do this). Basically, I have daemons running that may or may not have a child process running at any given time. In another script I want to check if there are any child processes, and if so do something. If not, error out. ps fwaux|grep will show me the tree, but I'm not exactly sure what to do with it. Any suggestions would be great.

    Read the article

  • boot problem with ubuntu and windows 8

    - by hunch
    i have a hp dv6 system. on which i was having the windows 8 installed. as i was interested in downloading the ubuntu 12.10 along with windows 8(not inside) .i have made separate partition in ubuntu 12.10 but some how it backfires and now i am not able to boot windows 8 and ubuntu. with windows 8 there is no drive to access the drive partition that has OS. with ubuntu i am getting blank screen. i am thinking that i have problem in system partition but i am not able to solve it. Plz help me. i am in a venerable condition... i have tried booting the window with the help of installation cd but iam not succesful in any of the method - 1-reset PC 2-RECOVERY 3- from command prompt i tried to check disks but it is not showing anything

    Read the article

  • How to log kernel panics without KVM

    - by Spacedust
    My server is crashing and I can't find an answer why. It all started after my datacenter upgrade RAM from 16 GB to 32 GB. I also found such logs in dmesg - they've started to show itself just before the first kernel panic: EXT4-fs error (device md2): ext4_ext_find_extent: bad header/extent in inode #97911179: invalid magic - magic 5f69, entries 28769, max 26988(0), depth 24939(0) EXT4-fs error (device md2): ext4_ext_remove_space: bad header/extent in inode #97911179: invalid magic - magic 5f69, entries 28769, max 26988(0), depth 24939(0) EXT4-fs error (device md2): ext4_mb_generate_buddy: EXT4-fs: group 20974: 8589 blocks in bitmap, 54896 in gd JBD: Spotted dirty metadata buffer (dev = md2, blocknr = 0). There's a risk of filesystem corruption in case of system crash. EXT4-fs error (device md2): ext4_ext_split: inode #97911179: (comm pdflush) eh_entries 28769 != eh_max 26988! EXT4-fs (md2): delayed block allocation failed for inode 97911179 at logical offset 1039 with max blocks 1 with error -5 This should not happen!! Data will be lost EXT4-fs error (device md2): ext4_mb_generate_buddy: EXT4-fs: group 21731: 5 blocks in bitmap, 60762 in gd JBD: Spotted dirty metadata buffer (dev = md2, blocknr = 0). There's a risk of filesystem corruption in case of system crash. My system is CentOS 5.8 64-bit with latest kernel 2.6.18-308.20.1.el5. How can I check what is the reason of kernel panic without having an access to the KVM ? I have told my datacenter admins to check the memory in the server.

    Read the article

  • Seeking on a Heap, and Two Useful DMVs

    - by Paul White
    So far in this mini-series on seeks and scans, we have seen that a simple ‘seek’ operation can be much more complex than it first appears.  A seek can contain one or more seek predicates – each of which can either identify at most one row in a unique index (a singleton lookup) or a range of values (a range scan).  When looking at a query plan, we will often need to look at the details of the seek operator in the Properties window to see how many operations it is performing, and what type of operation each one is.  As you saw in the first post in this series, the number of hidden seeking operations can have an appreciable impact on performance. Measuring Seeks and Scans I mentioned in my last post that there is no way to tell from a graphical query plan whether you are seeing a singleton lookup or a range scan.  You can work it out – if you happen to know that the index is defined as unique and the seek predicate is an equality comparison, but there’s no separate property that says ‘singleton lookup’ or ‘range scan’.  This is a shame, and if I had my way, the query plan would show different icons for range scans and singleton lookups – perhaps also indicating whether the operation was one or more of those operations underneath the covers. In light of all that, you might be wondering if there is another way to measure how many seeks of either type are occurring in your system, or for a particular query.  As is often the case, the answer is yes – we can use a couple of dynamic management views (DMVs): sys.dm_db_index_usage_stats and sys.dm_db_index_operational_stats. Index Usage Stats The index usage stats DMV contains counts of index operations from the perspective of the Query Executor (QE) – the SQL Server component that is responsible for executing the query plan.  It has three columns that are of particular interest to us: user_seeks – the number of times an Index Seek operator appears in an executed plan user_scans – the number of times a Table Scan or Index Scan operator appears in an executed plan user_lookups – the number of times an RID or Key Lookup operator appears in an executed plan An operator is counted once per execution (generating an estimated plan does not affect the totals), so an Index Seek that executes 10,000 times in a single plan execution adds 1 to the count of user seeks.  Even less intuitively, an operator is also counted once per execution even if it is not executed at all.  I will show you a demonstration of each of these things later in this post. Index Operational Stats The index operational stats DMV contains counts of index and table operations from the perspective of the Storage Engine (SE).  It contains a wealth of interesting information, but the two columns of interest to us right now are: range_scan_count – the number of range scans (including unrestricted full scans) on a heap or index structure singleton_lookup_count – the number of singleton lookups in a heap or index structure This DMV counts each SE operation, so 10,000 singleton lookups will add 10,000 to the singleton lookup count column, and a table scan that is executed 5 times will add 5 to the range scan count. The Test Rig To explore the behaviour of seeks and scans in detail, we will need to create a test environment.  The scripts presented here are best run on SQL Server 2008 Developer Edition, but the majority of the tests will work just fine on SQL Server 2005.  A couple of tests use partitioning, but these will be skipped if you are not running an Enterprise-equivalent SKU.  Ok, first up we need a database: USE master; GO IF DB_ID('ScansAndSeeks') IS NOT NULL DROP DATABASE ScansAndSeeks; GO CREATE DATABASE ScansAndSeeks; GO USE ScansAndSeeks; GO ALTER DATABASE ScansAndSeeks SET ALLOW_SNAPSHOT_ISOLATION OFF ; ALTER DATABASE ScansAndSeeks SET AUTO_CLOSE OFF, AUTO_SHRINK OFF, AUTO_CREATE_STATISTICS OFF, AUTO_UPDATE_STATISTICS OFF, PARAMETERIZATION SIMPLE, READ_COMMITTED_SNAPSHOT OFF, RESTRICTED_USER ; Notice that several database options are set in particular ways to ensure we get meaningful and reproducible results from the DMVs.  In particular, the options to auto-create and update statistics are disabled.  There are also three stored procedures, the first of which creates a test table (which may or may not be partitioned).  The table is pretty much the same one we used yesterday: The table has 100 rows, and both the key_col and data columns contain the same values – the integers from 1 to 100 inclusive.  The table is a heap, with a non-clustered primary key on key_col, and a non-clustered non-unique index on the data column.  The only reason I have used a heap here, rather than a clustered table, is so I can demonstrate a seek on a heap later on.  The table has an extra column (not shown because I am too lazy to update the diagram from yesterday) called padding – a CHAR(100) column that just contains 100 spaces in every row.  It’s just there to discourage SQL Server from choosing table scan over an index + RID lookup in one of the tests. The first stored procedure is called ResetTest: CREATE PROCEDURE dbo.ResetTest @Partitioned BIT = 'false' AS BEGIN SET NOCOUNT ON ; IF OBJECT_ID(N'dbo.Example', N'U') IS NOT NULL BEGIN DROP TABLE dbo.Example; END ; -- Test table is a heap -- Non-clustered primary key on 'key_col' CREATE TABLE dbo.Example ( key_col INTEGER NOT NULL, data INTEGER NOT NULL, padding CHAR(100) NOT NULL DEFAULT SPACE(100), CONSTRAINT [PK dbo.Example key_col] PRIMARY KEY NONCLUSTERED (key_col) ) ; IF @Partitioned = 'true' BEGIN -- Enterprise, Trial, or Developer -- required for partitioning tests IF SERVERPROPERTY('EngineEdition') = 3 BEGIN EXECUTE (' DROP TABLE dbo.Example ; IF EXISTS ( SELECT 1 FROM sys.partition_schemes WHERE name = N''PS'' ) DROP PARTITION SCHEME PS ; IF EXISTS ( SELECT 1 FROM sys.partition_functions WHERE name = N''PF'' ) DROP PARTITION FUNCTION PF ; CREATE PARTITION FUNCTION PF (INTEGER) AS RANGE RIGHT FOR VALUES (20, 40, 60, 80, 100) ; CREATE PARTITION SCHEME PS AS PARTITION PF ALL TO ([PRIMARY]) ; CREATE TABLE dbo.Example ( key_col INTEGER NOT NULL, data INTEGER NOT NULL, padding CHAR(100) NOT NULL DEFAULT SPACE(100), CONSTRAINT [PK dbo.Example key_col] PRIMARY KEY NONCLUSTERED (key_col) ) ON PS (key_col); '); END ELSE BEGIN RAISERROR('Invalid SKU for partition test', 16, 1); RETURN; END; END ; -- Non-unique non-clustered index on the 'data' column CREATE NONCLUSTERED INDEX [IX dbo.Example data] ON dbo.Example (data) ; -- Add 100 rows INSERT dbo.Example WITH (TABLOCKX) ( key_col, data ) SELECT key_col = V.number, data = V.number FROM master.dbo.spt_values AS V WHERE V.[type] = N'P' AND V.number BETWEEN 1 AND 100 ; END; GO The second stored procedure, ShowStats, displays information from the Index Usage Stats and Index Operational Stats DMVs: CREATE PROCEDURE dbo.ShowStats @Partitioned BIT = 'false' AS BEGIN -- Index Usage Stats DMV (QE) SELECT index_name = ISNULL(I.name, I.type_desc), scans = IUS.user_scans, seeks = IUS.user_seeks, lookups = IUS.user_lookups FROM sys.dm_db_index_usage_stats AS IUS JOIN sys.indexes AS I ON I.object_id = IUS.object_id AND I.index_id = IUS.index_id WHERE IUS.database_id = DB_ID(N'ScansAndSeeks') AND IUS.object_id = OBJECT_ID(N'dbo.Example', N'U') ORDER BY I.index_id ; -- Index Operational Stats DMV (SE) IF @Partitioned = 'true' SELECT index_name = ISNULL(I.name, I.type_desc), partitions = COUNT(IOS.partition_number), range_scans = SUM(IOS.range_scan_count), single_lookups = SUM(IOS.singleton_lookup_count) FROM sys.dm_db_index_operational_stats ( DB_ID(N'ScansAndSeeks'), OBJECT_ID(N'dbo.Example', N'U'), NULL, NULL ) AS IOS JOIN sys.indexes AS I ON I.object_id = IOS.object_id AND I.index_id = IOS.index_id GROUP BY I.index_id, -- Key I.name, I.type_desc ORDER BY I.index_id; ELSE SELECT index_name = ISNULL(I.name, I.type_desc), range_scans = SUM(IOS.range_scan_count), single_lookups = SUM(IOS.singleton_lookup_count) FROM sys.dm_db_index_operational_stats ( DB_ID(N'ScansAndSeeks'), OBJECT_ID(N'dbo.Example', N'U'), NULL, NULL ) AS IOS JOIN sys.indexes AS I ON I.object_id = IOS.object_id AND I.index_id = IOS.index_id GROUP BY I.index_id, -- Key I.name, I.type_desc ORDER BY I.index_id; END; The final stored procedure, RunTest, executes a query written against the example table: CREATE PROCEDURE dbo.RunTest @SQL VARCHAR(8000), @Partitioned BIT = 'false' AS BEGIN -- No execution plan yet SET STATISTICS XML OFF ; -- Reset the test environment EXECUTE dbo.ResetTest @Partitioned ; -- Previous call will throw an error if a partitioned -- test was requested, but SKU does not support it IF @@ERROR = 0 BEGIN -- IO statistics and plan on SET STATISTICS XML, IO ON ; -- Test statement EXECUTE (@SQL) ; -- Plan and IO statistics off SET STATISTICS XML, IO OFF ; EXECUTE dbo.ShowStats @Partitioned; END; END; The Tests The first test is a simple scan of the heap table: EXECUTE dbo.RunTest @SQL = 'SELECT * FROM Example'; The top result set comes from the Index Usage Stats DMV, so it is the Query Executor’s (QE) view.  The lower result is from Index Operational Stats, which shows statistics derived from the actions taken by the Storage Engine (SE).  We see that QE performed 1 scan operation on the heap, and SE performed a single range scan.  Let’s try a single-value equality seek on a unique index next: EXECUTE dbo.RunTest @SQL = 'SELECT key_col FROM Example WHERE key_col = 32'; This time we see a single seek on the non-clustered primary key from QE, and one singleton lookup on the same index by the SE.  Now for a single-value seek on the non-unique non-clustered index: EXECUTE dbo.RunTest @SQL = 'SELECT data FROM Example WHERE data = 32'; QE shows a single seek on the non-clustered non-unique index, but SE shows a single range scan on that index – not the singleton lookup we saw in the previous test.  That makes sense because we know that only a single-value seek into a unique index is a singleton seek.  A single-value seek into a non-unique index might retrieve any number of rows, if you think about it.  The next query is equivalent to the IN list example seen in the first post in this series, but it is written using OR (just for variety, you understand): EXECUTE dbo.RunTest @SQL = 'SELECT data FROM Example WHERE data = 32 OR data = 33'; The plan looks the same, and there’s no difference in the stats recorded by QE, but the SE shows two range scans.  Again, these are range scans because we are looking for two values in the data column, which is covered by a non-unique index.  I’ve added a snippet from the Properties window to show that the query plan does show two seek predicates, not just one.  Now let’s rewrite the query using BETWEEN: EXECUTE dbo.RunTest @SQL = 'SELECT data FROM Example WHERE data BETWEEN 32 AND 33'; Notice the seek operator only has one predicate now – it’s just a single range scan from 32 to 33 in the index – as the SE output shows.  For the next test, we will look up four values in the key_col column: EXECUTE dbo.RunTest @SQL = 'SELECT key_col FROM Example WHERE key_col IN (2,4,6,8)'; Just a single seek on the PK from the Query Executor, but four singleton lookups reported by the Storage Engine – and four seek predicates in the Properties window.  On to a more complex example: EXECUTE dbo.RunTest @SQL = 'SELECT * FROM Example WITH (INDEX([PK dbo.Example key_col])) WHERE key_col BETWEEN 1 AND 8'; This time we are forcing use of the non-clustered primary key to return eight rows.  The index is not covering for this query, so the query plan includes an RID lookup into the heap to fetch the data and padding columns.  The QE reports a seek on the PK and a lookup on the heap.  The SE reports a single range scan on the PK (to find key_col values between 1 and 8), and eight singleton lookups on the heap.  Remember that a bookmark lookup (RID or Key) is a seek to a single value in a ‘unique index’ – it finds a row in the heap or cluster from a unique RID or clustering key – so that’s why lookups are always singleton lookups, not range scans. Our next example shows what happens when a query plan operator is not executed at all: EXECUTE dbo.RunTest @SQL = 'SELECT key_col FROM Example WHERE key_col = 8 AND @@TRANCOUNT < 0'; The Filter has a start-up predicate which is always false (if your @@TRANCOUNT is less than zero, call CSS immediately).  The index seek is never executed, but QE still records a single seek against the PK because the operator appears once in an executed plan.  The SE output shows no activity at all.  This next example is 2008 and above only, I’m afraid: EXECUTE dbo.RunTest @SQL = 'SELECT * FROM Example WHERE key_col BETWEEN 1 AND 30', @Partitioned = 'true'; This is the first example to use a partitioned table.  QE reports a single seek on the heap (yes – a seek on a heap), and the SE reports two range scans on the heap.  SQL Server knows (from the partitioning definition) that it only needs to look at partitions 1 and 2 to find all the rows where key_col is between 1 and 30 – the engine seeks to find the two partitions, and performs a range scan seek on each partition. The final example for today is another seek on a heap – try to work out the output of the query before running it! EXECUTE dbo.RunTest @SQL = 'SELECT TOP (2) WITH TIES * FROM Example WHERE key_col BETWEEN 1 AND 50 ORDER BY $PARTITION.PF(key_col) DESC', @Partitioned = 'true'; Notice the lack of an explicit Sort operator in the query plan to enforce the ORDER BY clause, and the backward range scan. © 2011 Paul White email: [email protected] twitter: @SQL_Kiwi

    Read the article

  • SQL SERVER – Introduction to LEAD and LAG – Analytic Functions Introduced in SQL Server 2012

    - by pinaldave
    SQL Server 2012 introduces new analytical function LEAD() and LAG(). This functions accesses data from a subsequent row (for lead) and previous row (for lag) in the same result set without the use of a self-join . It will be very difficult to explain this in words so I will attempt small example to explain you this function. Instead of creating new table, I will be using AdventureWorks sample database as most of the developer uses that for experiment. Let us fun following query. USE AdventureWorks GO SELECT s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty, LEAD(SalesOrderDetailID) OVER (ORDER BY SalesOrderDetailID ) LeadValue, LAG(SalesOrderDetailID) OVER (ORDER BY SalesOrderDetailID ) LagValue FROM Sales.SalesOrderDetail s WHERE SalesOrderID IN (43670, 43669, 43667, 43663) ORDER BY s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty GO Above query will give us following result. When we look at above resultset it is very clear that LEAD function gives us value which is going to come in next line and LAG function gives us value which was encountered in previous line. If we have to generate the same result without using this function we will have to use self join. In future blog post we will see the same. Let us explore this function a bit more. This function not only provide previous or next line but it can also access any line before or after using offset. Let us fun following query, where LEAD and LAG function accesses the row with offset of 2. USE AdventureWorks GO SELECT s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty, LEAD(SalesOrderDetailID,2) OVER (ORDER BY SalesOrderDetailID ) LeadValue, LAG(SalesOrderDetailID,2) OVER (ORDER BY SalesOrderDetailID ) LagValue FROM Sales.SalesOrderDetail s WHERE SalesOrderID IN (43670, 43669, 43667, 43663) ORDER BY s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty GO Above query will give us following result. You can see the LEAD and LAG functions  now have interval of  rows when they are returning results. As there is interval of two rows the first two rows in LEAD function and last two rows in LAG function will return NULL value. You can easily replace this NULL Value with any other default value by passing third parameter in LEAD and LAG function. Let us fun following query. USE AdventureWorks GO SELECT s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty, LEAD(SalesOrderDetailID,2,0) OVER (ORDER BY SalesOrderDetailID ) LeadValue, LAG(SalesOrderDetailID,2,0) OVER (ORDER BY SalesOrderDetailID ) LagValue FROM Sales.SalesOrderDetail s WHERE SalesOrderID IN (43670, 43669, 43667, 43663) ORDER BY s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty GO Above query will give us following result, where NULL are now replaced with value 0. Just like any other analytic function we can easily partition this function as well. Let us see the use of PARTITION BY in this clause. USE AdventureWorks GO SELECT s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty, LEAD(SalesOrderDetailID) OVER (PARTITION BY SalesOrderID ORDER BY SalesOrderDetailID ) LeadValue, LAG(SalesOrderDetailID) OVER (PARTITION BY SalesOrderID ORDER BY SalesOrderDetailID ) LagValue FROM Sales.SalesOrderDetail s WHERE SalesOrderID IN (43670, 43669, 43667, 43663) ORDER BY s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty GO Above query will give us following result, where now the data is partitioned by SalesOrderID and LEAD and LAG functions are returning the appropriate result in that window. As now there are smaller partition in my query, you will see higher presence of NULL. In future blog post we will see how this functions are compared to SELF JOIN. Reference: Pinal Dave (http://blog.SQLAuthority.com) Filed under: Pinal Dave, PostADay, SQL, SQL Authority, SQL Function, SQL Query, SQL Scripts, SQL Server, SQL Tips and Tricks, T SQL, Technology

    Read the article

< Previous Page | 67 68 69 70 71 72 73 74 75 76 77 78  | Next Page >