Why We Allocate .mdf And .ldf On Seperate Drives?
Oct 25, 2004Hi,
Why we allocate .mdf and .ldf on seperate drives?
Please tell me a proper logical reason behind it.
Hi,
Why we allocate .mdf and .ldf on seperate drives?
Please tell me a proper logical reason behind it.
Hi,
I know that SQL Server (MSDE), databases run much faster when the data and log files are on seperate physical devices. I can do this explictly when I write a CREATE DATABASE SQL script, but would like to change the MODEL database so that all new databases use the sperate data/log file assignments by default. I haven't found a way to alter the sysfiles table in model - I can read the data, but it balks at trying to update it. (recordset is not updateable, or adhoc querries not allowed against a system database).
I didn't see any options on the MSDE install that implements seperate data/log paths.
I don't have the SQL Server tools (like Enterprise Manager) available, but I do have VS.NET 03 (Standard). And Web Data Administrator.
Any suggestions? Thanks in advance.
Hi,
I've got a table with 65'000 records and when I do a SELECT * FROM tablename ORDER BY Name I receive this error message:
Msg 1105, Level 17, State 1
Can't allocate space for object '-513' in database 'tempdb' because the 'system' segment is full.
If you ran out of space in Syslogs, dump the transaction log.
Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment.
Msg 1510, Level 17, State 2
Sort failed: Out of space or locks in database 'tempdb'
So I've dumped the transaction with no_log and also I've extended the segement from the master database (because tempdb is in it bydefault):
sp_extendsegment system, master
But I've still got the error message. Is there anybody who can advice me?
Thank you
I’m hoping someone can help me create a ‘lottery’ for records in a table.
I have a table called tblPoints with a number of fields including Application_ID, Total_Points and Place_No. The following is a sample of the data
Application_ID Total_PointsPlace_No
87 105
68 95
49 75
96 75
155 75
156 70
144 70
146 70
At the moment there is no data in the Place_No field.
I want to assign a Place_No to all records based on the number of Points (Total_Points). The highest Points value should have a place Number of 1 and so on.
Application_IDTotal_PointsPlace_No
871051
68952
4975
9675
15575
15670
14470
14670
However, where a number of applications have the same points I want to randomly allocate a place number for them. Application_ID 49, 96 and 155 all have 75 points so each of the 3 applications should be randomly allocated one of the following place numbers, 3, 4 and 5. I can not allocate them based on their order in the table as it has to be seen as a ‘lottery’ and each time it is run they would expect to get a different result.
The same thing then has to happen with the last 3 records in this sample allocating place numbers 6, 7 and 8
I was hoping to create a stored procedure to do this, but I’ve no idea where to begin. I would appreciate any help you could give. Thank you.
C
Hi,
Sorry for placing it in SQL Server Forum.But I couldn't find a appropiate forum for my question.Can anybody help me?
My question is -
How to allocate expended memory in windows XP?
Thanks!!
Joydeep
I am getting a "Could not allocate space for object 'temp_trc' in database'Test' because the 'PRIMARY' filegroup is full"The database test has unrestricted growth (All the defaults). It resides ondrive c which has 4Gigs free. I added new data and log files on drive dwhich is about 30G free. I know that my insert doesn't take even 1G diskspace.Why is the database complaining about a full filegroup when I just expandedit?J.
View 1 Replies View RelatedCould anyone please help me in fixing this error asap...
Server: Msg 1105, Level 17, State 2, Line 1
Could not allocate space for object '(SYSTEM table id: -334560816)' in database 'TEMPDB' because the 'DEFAULT' filegroup is full.
Any help would be appreciated.
This message is received on the client. Client pc has Intel 2Ghz or better processor, 512MB Ram, sufficient hard drive space, connecting to MS SQLServer 2000 thru TCP/IP.
Database server is running Windows 2000 Advanced Server w/ SP3 and MS SQLServer 2000 Enterprise Edition w/ SP3, with 4 way 700Mhz PIII Xeon processors and 4GB Ram (I'm not certain about network connectivity, but it's at least 100MB Ethernet). The database is approximately 87GB, with an average of 250 to 300 connections.
The application is vendor supplied, written in Visual Basic 3.0. Therefore I am using 16 bit SQL drivers, the latest I am aware of, dated 6/15/1997.
This database was previously running on SQLServer 7, and this error did not occur. It started after the upgrade to SQLServer 2000. We discovered this error in testing the upgrade and found that by decreasing the "Network Packet Size" setting on SQLServer w/ sp_configure, we were able to make the message go away. However now that we are in a production environment, the message seems to be coming back randomly. We have the NPS set to 1024 (default is 4096). I'm worried about performance if it is dropped much farther.
Any ideas? Thanks again for any help!
"Could not allocate new page for database 'TEMPDB'. There are no more pages available in filegroup DEFAULT. Space can be created by dropping objects, adding additional files, or allowing file growth."
I get this error when running a query on another database. But why?
Both data and transaction files on TEMPDB are set to "automatically grow file" and "unrestricted file growth" and there is 70GB of free space on the disk drive. Shouldn't the files just grow? Why would this happen?
I get the following error when doing a variety of basic queries on other databases:
"Could not allocate new page for database 'TEMPDB'. There are no more pages available in filegroup DEFAULT. Space can be created by dropping objects, adding additional files, or allowing file growth."
This doesn't make any sense since they are set to auto grow and there is plenty of disk space to do so.
Both data and transaction files of tempdb are set to:
"Automatically grow file" is checked
"Maximum file size" is set to "Unrestricted file growth"
Growth rate of 10%
Both tempdb data file and transaction file are on D: but all drives have ample space:
c:25 GB free
D:69 GB free
E:175 GB free
sp_spaceused returns the following for tempdb:
namesizeunallocated space
tempdb4.00 MB1.45 MB
reserveddataindex_sizeunused
568 KB176 KB304 KB88 KB
sp_helpdb returned for tempdb:
tempdb
4.00 MBsa2Apr 23 2004Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=SIMPLE, Version=539, Collation=SQL_Latin1_General_CP1_CI_AS, SQLSortOrder=52, IsAutoCreateStatistics, IsAutoUpdateStatistics80
This is with SQL Server 2000 (Personal Edition)
Product Version: 8.00.760 (SP3)
Is this some strange limitation of Personal Edition? Is it worth upgrading to Standard Edition?
I have received below alert:
Could not allocate space for objects in database 'abc'
And I have added 1 GB(1024 MB) of free space to primary file system of 'abc'. However now the primary file system of 'abc' database is 120 GB and the file properties are : Automatically grow file is checked, By percent 1 and restrict file growth: 121024 MB
Still the database is showing as space avialable is 0.00, the total size is : 132186 MB
As of now I have't got any other alert, Please let me know if I get in the near future how to proceed??
One DTS package is running contunuously on this DB
Hello, I have an issue with a process that blows up because of the following error.
Executed as user: batchloader. Updated 0 existing Company records [SQLSTATE 01000] (Message 0) Inserted 0 new Company records [SQLSTATE 01000] (Message 0) Inserted 0 new EntityIdXref records [SQLSTATE 01000] (Message 0) Updated 977 existing CompanyCustomerAttr records [SQLSTATE 01000] (Message 0) Inserted 0 new CompanyCustomerAttr records [SQLSTATE 01000] (Message 0) Could not allocate new page for database 'TEMPDB'. There are no more pages available in filegroup DEFAULT. Space can be created by dropping objects, adding additional files, or allowing file growth. [SQLSTATE 42000] (Error 1101). The step failed.
Ok I am going to be typeing some really bad practices(I just started here 3 weeks ago.)
There is 23.6 gig free on my log drive. The disk is not running out of space and there are no disk errors in event viewer. The process in question calles 2 procs. These 2 proces load files from the filesystem and bulk load them into #temp tables. Then select's from these tables are issued using criteria from a static table. There are around 700000 rows being inserted into the #temp tables and no indexes are being created so very large table scans going on. Also there are some cursors being called to row by row minipulate the records and in the cursor it calles fucntions using cursors. There are thousands of files being processes everyday by several different jobs. All of the processes are written the same way. We have the tempdb set to auto grow by 10 % and the initial size is 3.5 gig. There are 3 to 4000 tables in the database and 90 % of them are being created on the fly to be used by this process and yes once again there are no indexes created on the on the fly tables. We have only one Filegroup on the server default.
I believe that takeing some of the objects and moving them to there own filegroup will help this issue. Every month we take on up to 800000 new records to process on top of what we allready do. So we use cursors cursors cursors temp objects with no indexes and massive recordsets and doing sorts on massive records sets. I am working with development to show them how and where to index but this will take time. I need a quick solution. Any thoughts any questions? The box has 4 gig of ram.
I have received below alert:
Could not allocate space for objects in database 'abc'
And I have added 1 GB(1024 MB) of free space to primary file system of 'abc'. However now the primary file system of 'abc' database is 120 GB and the file properties are : Automatically grow file is checked, By percent 1 and restrict file growth: 121024 MB
Still the database is showing as space avialable is 0.00, the total size is : 132186 MB
As of now I have't got any other alert, Please let me know if I get in the near future how to proceed??
One DTS package is running contunuously on this DB
running Sql Server 2005 SP2 on Windows 2003 Server SP1 with 2GB RAM. After start-up, the sqlservr.exe does only take up around 100 MB of RAM, and it stays roughly there even if the DB is used heavily. This leads to very poor performance, even timeouts on simple querys.
In the task manager, I see that of the 2 GB of RAM, more than 1 GB is still available. I don't understand why SQL Server won't take it?
As a test, I configured the min and max amount of RAM SQL Server should used both to 1024 MB and restarted the service - but it is still the same picture. It won't take more than around 100 MB.
The server has just been restarted, but the problem remains.
BTW there is also an instance of SQL 2000 on the same machine. It shows the same behaviour - I even checked the "reserve phyiscal memory" checkbox there, but it stays on a very low number (50 MB) and doesn't adhere to the supposed size.
thanks and best regards,
- Urs
do all sql data types consume whole numbers of bytes? We have an app that might be best suited to bit manipulation at the nibble rather than byte level.
View 3 Replies View RelatedWe got an error "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE"
Microsoft SQL Server 2005 - 9.00.5000.00 (Intel X86)
Dec 10 2010 10:56:29
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
We had 24CPU intell cores and 64 gb RAM on server.
Sql service starts with enabled AWE + LPM and "-g512" option.
Why we still use such relic configuration it is not my fault. i'm investigate log and find that memorystatus "Optimization Queue" section has really huge values.
Optimization Queue
Overall Memory = 1321132032Target Memory = 1158799360 Last Notification = GROW Timeout = 6 Early Termination Factor = 5Small Gateway Configured Units = 32 Available Units = 26 Acquires = 6 Waiters = 0 Threshold Factor = 250000 Threshold = 250000Medium Gateway Configured Units = 8 Available Units = 7 Acquires = 1 Waiters = 0 Threshold Factor = 12 Threshold = 16094435Big Gateway Configured Units = 1 Available Units = 1 Acquires = 0 Waiters = 0 Threshold Factor = 8 Threshold = 144849920
[code]...
What forced bPOOL to allocate pages in MTL? How to determine that queries? Same about SQL OS.As workaround i increase -g startup option to "-g2048", and "max server memory" was decreased to 54Gb.
Hi all,
I need to load a table with 820,000 records from a Sybase db via DTS. It always fail with the error:
"Error at destination for row number 820000. Could not allocate space for object in tablespace tempdb
. The default filegroup is full.".
There is only the primary filegroup defined in the db. I've increased the size from 1.5GB to 2GB,
and specify that it shd grow automatically by 10% and there's no limit to the size.
There is still some 28GB in the server, so it should be fine.
It still fail so I added another file to the primary filegroup with size 100MB. Again, it failed with the same error msg.
Where or how else can I increase the tempdb size?
Any help is appreciated.
Thanx,
Jes
I have an error on the phpbb message board I am using. I have a MS SQL database and cannot figure out what I get this error. How could I fix this?
The full error is:
Could not allocate space for object 'phpbb_topics' in database 'adultsiblinggrief' because the 'PRIMARY' filegroup is full.
Hello.
I have a db dal containing the following code:
SqlCommand cmd = new SqlCommand();
cmd.Connection = dbc;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SOME STORED PROCEDURE";
.
.
.
declare some SqlParameters
.
.
.
dbc.Open();
cmd.ExecuteNonQuery();
dbc.Close();
This code, when concurrently running via several threads, yields the following exception:
"The connection was not closed. The connection's current state is open."
My questions are:
1. Why don't .Net allocate another connection from the pool (I try to only concurrently run 2 threads while there are 25 connections in the connection pool) ?
2. How can one explicitly allocate a connection?
3. How do you suggest to solve this problem without a mutex/monitor etc' on the 3 bold lines above and without BeginExequteNonQuery()?
Thank you !
Hi All,
The following is the report from the SQL Server Mobile Subscription wizzard, Any Ideas?
New Subscription Wizard
- Beginning Synchronization (Success)
- Synchronizing Data (100%) (Error)
Messages
A call to SQL Server Reconciler failed. Try to resynchronize.
HRESULT 0x80004005 (29006)
The Publisher failed to allocate a new set of identity ranges for the subscription. This can occur when a Publisher or a republishing Subscriber has run out of identity ranges to allocate to its own Subscribers or when an identity column data type does not support an additional identity range allocation. If a republishing Subscriber has run out of identity ranges, synchronize the republishing Subscriber to obtain more identity ranges before restarting the synchronization. If a Publisher runs out of identit
HRESULT 0x80045647 (0)
Invalid parameter @subid specified for sys.sp_MSmerge_log_idrange_alloc_on_distributor.
HRESULT 0x0000523F (0)
The operation could not be completed.
- Finalizing Synchronization (Stopped)
- Saving Subscription Properties (Stopped)
Initially i thought it might be that some of the articles had primary keys that were of type nvarchar rather then Int thus resulting in no identity range being able to be assigned to those articles.
Test 1: I tried removing all articles that had nvarchar primary keys and left only one table that had an identity Int primary key colum. I then ran the snapshot agent. I then run through the Subscription Wizzard again and the error was the same.
Test 2: Then reading the error message again i tried those tables that didnt use identity columns and the wizzard completed successfully. Any idea what would be wrong with my articles that have identity columns. The article properties for the identity columns use the Identity Range Management defaults.
Any help would be appreciated.
I am trying to run a program called NVivo7, which - when I install - also requires installation of SQL Server. Because my C drive is small (and nearly full), I am trying to run NVivo7 off my D drive, though SQL seems to install on C. Is it possible, do you think, to use 2 different drives in this way, or do both the program and the Server need to be on the same one? If so, is there any way to get them both on D?
View 3 Replies View Relatedis there a setting that will ebnable uniform extent allocation uponcreation of index/table by default ?if there isn't any default setting can you code it in?thanks,Doron
View 1 Replies View RelatedSo i'm not really new, but got a question. i've recently been looking to to the Western Digital Raptor Drives.
as far as performance, it's always been my understanding that the speed of the hard drive is just about always the bottle-neck of a computer. i'm currently running 2 stripped WD 500gb SATA drives for my SQL server (dual Xeon 2.8 with 2GB memory).
i'm thinking of upgarding to 4 WD Raptors (10k RPM) drives, the new 150GB models. anyone have an opionion? do you think i'll get a large performance increase?
the database that i run queries off of now is about 125 Million names, with about 80 fields in width. so it's rather large, and usally takes a fair abount of time to get my results back (we're talking anywhere from a minute, to half the day.)
do you think the raptors will slim that down significantly?
We recently installed SQL Server 2005. The server has 3 drives. When I try to restore a database I can only access the C: drive. How do I make the D: and E: drives visible in the "locate folder" window?
Hi,
Can someone help me, I installed SQL 2005 Enterpirse Editon on windows clustered servers. Then after the installation
I want to change the path of my DB logs but the problem was, I can not see the other drives. I can see only the drive where the DB was located. Is there any special configurations that should be done.
Thanks.
Russell
i created a query and when i run it like this i get data but when i add a value in the 2ed case for '2%' i get error.
Select a.email, case when a.reportnumber like '1%' then (select b.Reportnumber from ijasSummaryNo b where a.Reportnumber = b.Reportnumber) end as Reportnumber, case when a.Reportnumber like '1%' then (select b.stonebreakdown from ijasSummaryNo b where a.Reportnumber = b.Reportnumber) end as Measurement, case when a.Reportnumber like '1%' then (select b.reportcarddate from ijasSummaryNo b where a.Reportnumber = b.Reportnumber) end as ijasDate,
case when a.reportnumber like '2%' then (select c.Reportnumber from appraisalsummaryblue c where a.reportnumber = c.reportnumber) end as imacsRepNo
from t_RegisterInfoTemp a
Query works fine like this but when i add this (the one marked bold i get error)
case when a.reportnumber like '2%' then (select c.Reportnumber from appraisalsummaryblue c where a.reportnumber = c.reportnumber) end as imacsRepNo,case when a.reportnumber like '2%' then (select c.Measurement from appraisalsummaryblue c where a.reportnumber = c.reportnumber) end as Measurement2
This is the error.
Server: Msg 4414, Level 16, State 1, Line 1Could not allocate ancillary table for view or function resolution. The maximum number of tables in a query (260) was exceeded.
Hi.
First of all, I apologize for my english
I have two publications. Some of the data are the same on the two publications. Both are configured as follow : The identity range management is set to "automatic" and the tracking-level is set to "Column-level tracking". Until there, every things works fine.
But, if i'm deleting one of the publication and if i'm deleting one of the rows that were replicated on the two publications i'm getting the following SQL Exception : "Invalid object name 'dbo.MSmerge_repl_view_1CAD32C4FF904A3CA27518B0C4BFF716_70308DE2261C4EC784C56131902E7D1C'"
If i'm watching the status of the leftover replication through the replication monitor, i get this error message :
"Error messages:
The Publisher failed to allocate a new set of identity ranges for the subscription. This can occur when a Publisher or a republishing Subscriber has run out of identity ranges to allocate to its own Subscribers or when an identity column data type does not support an additional identity range allocation. If a republishing Subscriber has run out of identity ranges, synchronize the republishing Subscriber to obtain more identity ranges before restarting the synchronization. If a Publisher runs out of identit (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147199417)
Get help: http://help/MSSQL_REPL-2147199417
The publisher's identity range allocation entry could not be found in MSmerge_identity_range table. (Source: MSSQLServer, Error number: 20663)
Get help: http://help/20663"
I checked the given links but they're useless.
So I tried to reinitialize the subscription with the "use a new snapshot" option enabled without any success either. I did only obtain a new error message :
"The publisher's identity range allocation entry could not be found in MSmerge_identity_range table.
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 1, current count = 2.
Failed to pr"
I didnt have any idea to correct this issue, so I would appreciate any help.
Thanks.
David.
Hi All,
I have got MSSQL 2000 set up on a machine in my rack at my local telehouse, and a web server set up at home on an ADSL line.
Both servers can see (ping) eachother fine , so you can rule out any kind of connectivity issues straight away, but when i try to get my forum to connect to the mssql database using the correct credentials it just fails saying that the credentials are incorrect ot the server does not exist.
I also installed an SQL database tool on my web server (Shusheng SQL Tool) and attempted to connect to my SQL server using that tool, and got the following message: '[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.'
The server is currently using mixed mode authentication (SQL/Windows) and has both TCP/IP and Named pipes enabled.
Is there some kind of 'Enable remote connections' option in SQL? I need to be able to allow connections to my SQL server from any system, anywhere...
Any ideas?
MERRY CHRISTMAS EVERYONE :)
I need to update a table on our Test Server which is GCSQLTEST, with another table thats on our live server GCSQL. How would I go about doing that in a stored procedure??
CREATE PROCEDURE [InsertRevised_MainTable]
AS
INSERT INTO dbo.RevisedMainTable
([IR Number], [Date], [I/RDocument], [Violation Type])
SELECT [Incident Report No], [Date], [I/RDocument], TypeOfIncident
FROM dbo.RevisedMainTable
WHERE NOT EXISTS (SELECT * FROM dbo.RevisedMainTable
WHERE [IR Number] = [IR Number])
Hi. I have been talking with some developers who have built a hosted application supporting multiple customers. Their database approach is to create a new, dedicated database (same schema each time) for every customer that signs-up.
This approach is contrary to typical hosted DB designs that I have delt with -- that is, a single database holding multiple customer information rather than a unique database for each customer.
Does the improved security of a dedicated database out-weigh the additional maintenance requirements?
If anyone has some objective thoughts on this topic, I'd love to hear them.
Thanks,
Bill
My boss has asked me to look into this and I haven't been able to find any information on the web. I hope someone can answer this for me. We currently have a single database that is storing all the user information and transactions. Within the same database we are also logging different types of user activity. If both these tables are heavily used, would it make sense to separate it into different database, one for data and one for logging? Is there any pro or cons of having more than one database? Any opinion or suggestion would be greatly appreciated. I'm the closest thing they have to DBA and I'm really new to this. Thanks.
View 5 Replies View RelatedDear All,
i've a string to pass as a parametre to a procedure.
like
create preocedure myproc(@EMPID VARCHAR(50),'abc,def,ghi,jkl')
...
end
i need the output like this
1 abc
2 def
3 ghi
4 jkl
.....
how can i do that?
Vinod
Even you learn 1%, Learn it with 100% confidence.
Hello ALL,
I want to seperate a FULNAME into First name, last name and middle name using SSIS. Provided "," Seperator
u can take example
John first name,mathew middle name,
smith last name
Please give me the command how to do it.
Thank YOu