WSS 3.0 Internal Database - sharepoint

What is the internal storage mechanism of WSS 3.0? Does it need SQL Server 2005 or can we use SQL Server 2005 Embedded Edition automatically installed with WSS 3.0? If yes then what is the limit of the content for a web application if it uses SSEE?
Let say I have created a web application in WSS 3.0 then how much data can be stored within it? How much data can I store for lists and document libraries? How many folders can I create inside a document library?

This is quite a common misconception - the paranoid amongst us may even thing that MSFT doesn't do much to clear this up as it pushes people along the route of buying SQL Server...
Tin hats away though ...
When you use the "Basic" install option during MOSS 2007 installation it does install and use SQL Server 2005 Express Edition (see Stand alone installation) and you do have a 4GB limit.
When you use the "Basic" install option during WSS 3.0 installation it DOES NOT use SQL Express, it uses something called Windows Internal Database and it DOES NOT have a 4GB size limit.
Its hard to find an authoritative reference on this (tin hats again) but this one by Mark Walsh and marked as correct by an MSFT moderator is about the best I can find.

Beside the database limitation there are some other SharePoint limitations and advises regarding the numbers of items per library or numbers of site collections per web application or content database.
MOSS Limitations 1
MOSS Limitations 2

It uses SQL Server 2005 Express Edition which I believe has a limit of 4GB per database. You could create multiple content databases for separate site collections but there may also be some performance limitations in the express edition.
Here is a page that compares editions:
http://www.microsoft.com/sqlserver/2005/en/us/compare-features.aspx

Josh pretty much has the answer. As for the "how many documents and lists and whatevers" question, the answer is "as many as you want so long as you don't slam into the 4gb limit."
I'd also note that if you start getting near that 4gb limit, you can always upgrade to full-blown SQL server with very minimal pain so it is a decent place to start.
The real place it falls down is management tools (ie--backup), but you can script that from the command line pretty effectively.

When installing SharePoint 2007 you can specify the SQL Server database to connect to yourself. If you don't do this SharePoint will use the Windows Internal Database, otherwise known as WYukon. This database is not the same as SQL Express and there's two key differences. (1) WYukon isn't artificially limited in database size or performance. (2) You can't connect to a WYukon database with a regular database connection string.
Here's a link with some (minimal) information about WYukon.
http://www.microsoft.com/downloads/details.aspx?FamilyId=30A7365B-91C5-4C28-85A5-9AB861168C0E
Regards,
Paul

Related

Windows Azure Virtual Machines Are They Worth It/Full Text Indexing

We have a fairly large application running on a small web farm with Sql Server replication. Lately the sales team have become obsessed with wanting to sell the solution as a cloud based product as they think it sounds better.
We have begun migrating our dynamic media content to azure blob storage for images, videos, etc. but we cannot move to Azure with Sql Azure as it is as we use features such as FileStream and Full Text Indexing for searching documents. Also from what I can understand you cannot bring backups locally and run in Sql Server which is a fundamental part of our development process and bug fixing.
One suggestion is to move to the Virtual Machines that are in preview when they are released, I guess with all my research I am struggling to see if that is going to be of benefit to us over our current setup. I can see the advantages of blob storage for geo-replication as we have users in China, Mexico and India.
My question is is it worth going to a virtual machine in Windows Azure over our current setup, if it's not does anyone know any dates when Sql Azure will support fulltext indexing?
Many thanks for any thoughts/your own experiences with this.
I think that they are working on FTS on SQL Azure, but the release date isn't known. You can use Lucene.NET with SQL Azure to create a full text index from you database, you can simple update the index with the content of your database once every x minutes (or hours/days).
More info: http://social.technet.microsoft.com/wiki/contents/articles/2367.how-to-use-lucene-net-with-windows-azure-sql-database-en-us.aspx
I do agree about the Lucene recommendation, however to answer your question on SQL Server and Azure :)....
SQL Server on VMs works pretty well, right now it is a BYO-License model...so keep that in mind. You can tweak everything, use the SKU you need, set up AlwaysOn (SQL 2012) or clustering etc. Format your drives the way you want them, set processor affinity etc. etc. etc. :)
Check out some of the IaaS BUILD 2012 videos from this past week: http://channel9.msdn.com. Microsoft is certifying SQL Server as part of the software to run on the IaaS platform. If you know a bit about IaaS, you get some gallery options now to pick starting images from...would be an educated guess expect SQL Server 2012 image on there with the license priced in for you
(Microsoft can do that because they own SQL Server, Amazon/RackSpace have to rely on open source)
I/O can be a performance bottleneck now...IOPs on a striped drive is about 2x a 15k SCSI drive...they are going to improve that in the future (once again there are hacks to get this to work better).
Azure has a bit to catch up to Amazon in the dedicated specialized VMs (high I/O, high memory, high CPU). I am guessing from your solution (search/FILESTREAM) you would want high I/O..Amazon AWS has this right now and specialized storage on SSDs etc.
I am not sure if Full Text Search is coming to SQL Azure (PaaS version of SQL Server). If you have Full Text Search you probably are going to be tweaking Trace Flags, need constant communication with Blob Storage with high I/O...formatting the drive to the default 64kb allocation unit is probably OK for data drives but not for FILESTREAM etc.

sql express 2008 & tde

Good afternoon,
Anyone know if sql express 2008 version, the option of using TDE (Transparent Data Encryption).
I tried using it for testing and the server gave me the following error.
"The transparent data encryption is not available in the publication of this instance of SQL Server. See Books Online for more details on feature support in different editions of SQL Server."
Thanks and a greeting.
TDE is available only in Enterprise editions AFAIK.
As mentioned, Microsoft supports TDE only in Enterprise Edition. However, there are several third party products that will provide TDE to all editions and verions of SQL Server, including SQL Express. One of those products being ours: Encryptionizer for SQL Server. Another one that I am aware of is DBDefence. Internally they work very differently though: Encryptionizer sits between SQL Server and the Operating System, while DBDefence injects itself into the SQL process running in memory to change the behavior of the process.

Difference between Cloudant and CouchOne?

I wonder what the difference is between Cloudant and CouchOne.
Good question. My quick answer:
CouchOne is lead by Damien Katz, the originator of the CouchDB Apache project. CouchOne is now focused squarely on scaling couchdb down to run efficiently on mobile devices. The goal is to leverage the p2p replication model of CouchDB to solve the sync problem on mobile.
Cloudant is founded by 3 PhD's from MIT with big-data backgrounds. Cloudant is focused squarely on scaling CouchDB up (see the open-source bigcouch project) to power data-intensive applications in the cloud. Cloudant provides scalable data as a service for high-rate, large volume online transaction processing, search and analytics.
Thus there is a real opportunity to see the CouchDB API flourish at two tremendously different scales to provide the application developer a single platform that runs on the mobile and in the cloud, with seamless data (and CouchApp!) migration between the two.
Update (2015)
Currently, according to Professional Services on CouchDB Wiki, there are 3 CouchDB hosting services:
Smileupps
Cloudant
Iris Couch
Since this question is specifically about Cloudant and CouchOne, here's more info:
Cloudant was bought by IBM in March 2014 - see IBM Completes Acquisition of Cloudant - and continues to operate.
According to Wikipedia: "Cloudant is an IBM software product, which is primarily delivered as a cloud-based service. Cloudant is an open source non-relational, distributed database service of the same name that requires zero-configuration. Cloudant is based on the Apache-backed CouchDB project and the open source BigCouch project." (source)
CouchOne is not available any more. As of June 2015 http://www.couchone.com/ gives 404 Not Found (since at least March 2013), #couchone on Twitter had last tweets in May 2011 and says that "CouchOne is now Couchbase, Inc." - but please note that contrary to some marketing material the Couchbase Server is not a continuation of CouchDB - it has a different code base, licensing, philosophy, features, data and protocols.
For more info on this and an explanation of differences between things like CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB etc.- see the answer that I wrote to: Difference between CouchDB and Couchbase in March 2013.
Original answer (2011)
It's a late answer to a somewhat dated thread but it's a number one Google hit for "couchone and cloudant" so here's a little update.
Few days ago CouchOne announced a merge with Membase to form a new company called Couchbase. Membase is known eg. for the database behind FarmVille by Zynga so it's a mature large scale NoSQL solution and Couchbase is planned to be a technology scaling from smartphones to large data center clusters.
Cloudand on the other hand started from large scale (see Mike's comments) and while you can get a large scale solutions for more than $1000/mo, you can also get a 2GB database for $15/mo and even a smaller one for free.
There is a difference in managing the databases, CouchOne uses just Futon right now and Cloudant has a custom web interface where you can set up shared databases, virtual hosts, custom domains etc.
All in all Cloudant seems to be more mature right now and we have to see how the Couchbase develops.
The bottom line is that both CouchOne and Cloudant can be tried for free so it's probably best to try out both and see what best suits your needs.
I would also note that CouchOne/CouchBase supports the GeoCouch extensions, while Cloudant does not. Important if you want to do bounding box queries.

SQL Azure Profiling

I read on the MS site that SQL Azure does not support SQL Profiler. What are people using to profile queries running on this platform?
I haven't got too far playing around with SQL Azure as yet, but from what I understand there isn't anything you can use at the moment.
From MS (probably the article you read):
Because SQL Azure performs the
physical administration, any
statements and options that attempt to
directly manipulate physical resources
will be blocked, such as Resource
Governor, file group references, and
some physical server DDL statements.
It is also not possible to set server
options and SQL trace flags or use the
SQL Server Profiler or the Database
Tuning Advisor utilities.
If there were to be an alernative, I'd imagine it would require the ability to set trace flags which you can't do, hence I don't think there is an option at the moment.
Solution? I can only suggest you have a local development copy of the db so you can run profiler locally on it. I know that won't help with "live" issues/debugging/monitoring but it depends on what you need it for.
Edit:
Quote from MSDN forum:
Q: Is SQL Profiler supported in SQL
Azure?
A: We do not support SQL Profiler in
v1 of SQL Azure.
Now, you could interpret that as a hint that Profiler will be supported in future versions. I think it will be a big requirement to get a lot of people on board, using SQL Azure seriously.
Update as of 9/17/2015:
Microsoft just announced a new feature called Index Advisor:
How does Index Advisor work? Index Advisor continuously monitors your
database workload, performs the analysis and recommends new indexes
that can further improve the DB performance.
Recommendations are always kept up-to-date: As the DB workload and
schema evolves, Index Advisor will monitor the changes and adjust the
recommendations accordingly. Each recommendation comes with the
estimated impact to DB workload performance: You can use this
information to prioritize the most impactful recommendations first. In
addition, Index Advisor provides a very easy and powerful way of
creating the recommended indexes.
Creating new indexes only takes a couple of clicks. Index Advisor
measures the impact of newly created indexes and provides a report on
index impact to users. You can get started with Index Advisor and
improve your database performance with the following simple steps. It
literally takes five minutes to get accustomed with Index Advisor’s
simple and intuitive user interface. Let’s get started!
Original Answer:
SQL Azure now has some native profiling. See http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how-do-i-get-sql-profiler-info-from-sql-azure.aspx for details.
Microsoft's stated position SQL Server Profiler is deprecated. As much as this is a bad idea, that's what they have said.
SQL Profile is already deprecated in SQL Server, and that’s part of
the reason that it doesn’t make sense to bring to SQL DB.
What this means is you are going back 20+ years in database performance monitoring and everyone is going to have to write their own perf monitoring scripts instead of having a standard factory delivered tool that's on every server you will go to. It's tantamount to deprecating "sp_help" and making every DBA write their own. Hope you know all your DMVs inside and out... INNER JOIN, OUTER JOIN, and CROSS APPLY syntax really well.
Update as of 2017/04/14:
Microsoft's Scott Guthrie today announced a lot of new features in SQLAzure(this is called sqlazure managed instance,which is currently in preview),which are expected to be present in SQLAzure in coming months..below are them
1.SQLAgent
2.SQLProfiler
3.SQLCLR
4.Service Broker
5.Logshipping,Transactional Replication
6.Native/Backup restore
7.Additional DMV's and Xevents
8.cross database querying
References:
https://youtu.be/0uT46lpjeQE?t=1415
I have tried today a new tool suggested by Microsoft that is called Azure Data Studio.
In this tool you can download an extension called Profiler and it seems to be working just as expected.
You can use Query store feature, look here for more details: http://azure.microsoft.com/blog/2015/06/08/query-store-a-flight-data-recorder-for-your-database/
The most close to SQL profiler, that I found working in Azure SQL, is SQL Workload Profiler
However note, that it’s beta version of a tool, created but a single person, and it is not too convinient to use.
SQL Azure offers following features to tune performance, profile queries in its own way, identity long running queries and much more
Intelligent Performance
Performance overview
Performance recommendations
Query Performance Insight
Automatic tuning

Windows Media Server Streaming from database

Is it possible to somehow set up WMS to stream the content from a database only using Windows Server 2003 Standard edition?
I know it can be done using custom-plugin data source but that is only enabled with Windows Server 2003 Enterprise Edition.
Sorry to be the bearer of bad news, but your best bet is probably:
Maintain copies of your data outside of the database (I don't know the details of your setup, so this may defeat the purpose of what you're trying to do). Basically, keep a file cache of the content you want to stream and write an application to keep the file cache synchronized with the database.
Switch to Windows Server 2008. The Web Server and Standard editions for 2008 support custom plugins and should be much more affordable than the Enterprise editions (I believe the Web Server edition is under $500).
Maybe someone else has some clever solution, but these are the only options I'm aware of.
There is nothing that ships out of the box but WMS does support additional custom plug-ins. From a performance perspective you might want to consider why you need to do so. The easiest way in my mind would be to write an HTTP wrapper around the database and use the built-in HTTP streaming data source. The knowledge and skills required to write the HTTP wrapper is more plentiful than writing WMS plugins. If you do have a use case for this consider SQL Server 2008's filestream feature as it is designed for giving you the relational power with file system performance.

Resources